malloc_debug: align allocations
* Align all allocations of more than 8 bytes to 8-byte. * Avoids hitting ASSERTs in WebKit when built in debug mode (it assumes at least 8 byte alignment)
This commit is contained in:
parent
81abd9ed03
commit
217f090f9e
@ -966,7 +966,7 @@ memalign(size_t alignment, size_t size)
|
|||||||
extern "C" void*
|
extern "C" void*
|
||||||
malloc(size_t size)
|
malloc(size_t size)
|
||||||
{
|
{
|
||||||
return memalign(0, size);
|
return memalign(size >= 8 ? 8 : 0, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -987,7 +987,7 @@ realloc(void* address, size_t newSize)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (address == NULL)
|
if (address == NULL)
|
||||||
return memalign(0, newSize);
|
return memalign(size >= 8 ? 8 : 0, newSize);
|
||||||
|
|
||||||
return guarded_heap_realloc(address, newSize);
|
return guarded_heap_realloc(address, newSize);
|
||||||
}
|
}
|
||||||
|
@ -1465,7 +1465,7 @@ heap_realloc(heap_allocator *heap, void *address, void **newAddress,
|
|||||||
newSize -= sizeof(addr_t) + sizeof(heap_leak_check_info);
|
newSize -= sizeof(addr_t) + sizeof(heap_leak_check_info);
|
||||||
|
|
||||||
// if not, allocate a new chunk of memory
|
// if not, allocate a new chunk of memory
|
||||||
*newAddress = memalign(0, newSize);
|
*newAddress = memalign(newSize >= 8 ? 8 : 0, newSize);
|
||||||
if (*newAddress == NULL) {
|
if (*newAddress == NULL) {
|
||||||
// we tried but it didn't work out, but still the operation is done
|
// we tried but it didn't work out, but still the operation is done
|
||||||
return B_OK;
|
return B_OK;
|
||||||
@ -1937,7 +1937,7 @@ malloc(size_t size)
|
|||||||
if (sUseGuardPage)
|
if (sUseGuardPage)
|
||||||
return heap_debug_malloc_with_guard_page(size);
|
return heap_debug_malloc_with_guard_page(size);
|
||||||
|
|
||||||
return memalign(0, size);
|
return memalign(size >= 8 ? 8 : 0, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1978,7 +1978,7 @@ void *
|
|||||||
realloc(void *address, size_t newSize)
|
realloc(void *address, size_t newSize)
|
||||||
{
|
{
|
||||||
if (address == NULL)
|
if (address == NULL)
|
||||||
return memalign(0, newSize);
|
return memalign(newSize >= 8 ? 8 : 0, newSize);
|
||||||
|
|
||||||
if (newSize == 0) {
|
if (newSize == 0) {
|
||||||
free(address);
|
free(address);
|
||||||
|
Loading…
Reference in New Issue
Block a user