fix CircularBuffer ashmem fallback (#1763)

This commit is contained in:
Mathias Agopian
2019-10-09 16:48:22 -07:00
committed by Romain Guy
parent fb5ee4a9d0
commit a96da05ab8

View File

@@ -90,19 +90,24 @@ void* CircularBuffer::alloc(size_t size) noexcept {
if (UTILS_UNLIKELY(mUsesAshmem < 0)) {
// ashmem failed
if (vaddr_guard != MAP_FAILED)
if (vaddr_guard != MAP_FAILED) {
munmap(vaddr_guard, size);
}
if (vaddr_shadow != MAP_FAILED)
if (vaddr_shadow != MAP_FAILED) {
munmap(vaddr_shadow, size);
}
if (vaddr != MAP_FAILED)
if (vaddr != MAP_FAILED) {
munmap(vaddr, size);
}
if (fd >= 0)
if (fd >= 0) {
close(fd);
}
data = mmap(nullptr, size * 2 + BLOCK_SIZE, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
data = mmap(nullptr, size * 2 + BLOCK_SIZE,
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
ASSERT_POSTCONDITION(data,
"couldn't allocate %u KiB of virtual address space for the command buffer",