mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 1229384 - Invert the meaning of the arena_ralloc_large and arena_t::RallocGrowLarge return type. r=njn
--HG-- extra : rebase_source : 6d0dcf1e8d1051597a542be38fe0a8641fb0acb0
This commit is contained in:
parent
8e876fc0b0
commit
8fbdcde064
@ -3691,6 +3691,7 @@ arena_t::RallocShrinkLarge(arena_chunk_t* aChunk, void* aPtr, size_t aSize,
|
||||
mStats.allocated_large -= aOldSize - aSize;
|
||||
}
|
||||
|
||||
/* Returns whether reallocation was successful. */
|
||||
bool
|
||||
arena_t::RallocGrowLarge(arena_chunk_t* aChunk, void* aPtr, size_t aSize,
|
||||
size_t aOldSize)
|
||||
@ -3721,15 +3722,16 @@ arena_t::RallocGrowLarge(arena_chunk_t* aChunk, void* aPtr, size_t aSize,
|
||||
CHUNK_MAP_ALLOCATED;
|
||||
|
||||
mStats.allocated_large += aSize - aOldSize;
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Try to resize a large allocation, in order to avoid copying. This will
|
||||
* always fail if growing an object, and the following run is already in use.
|
||||
* Returns whether reallocation was successful.
|
||||
*/
|
||||
static bool
|
||||
arena_ralloc_large(void* aPtr, size_t aSize, size_t aOldSize)
|
||||
@ -3742,7 +3744,7 @@ arena_ralloc_large(void* aPtr, size_t aSize, size_t aOldSize)
|
||||
if (aSize < aOldSize) {
|
||||
memset((void*)((uintptr_t)aPtr + aSize), kAllocPoison, aOldSize - aSize);
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
} else {
|
||||
arena_chunk_t* chunk;
|
||||
arena_t* arena;
|
||||
@ -3755,10 +3757,10 @@ arena_ralloc_large(void* aPtr, size_t aSize, size_t aOldSize)
|
||||
/* Fill before shrinking in order avoid a race. */
|
||||
memset((void*)((uintptr_t)aPtr + aSize), kAllocPoison, aOldSize - aSize);
|
||||
arena->RallocShrinkLarge(chunk, aPtr, psize, aOldSize);
|
||||
return false;
|
||||
return true;
|
||||
} else {
|
||||
bool ret = arena->RallocGrowLarge(chunk, aPtr, psize, aOldSize);
|
||||
if (ret == false && opt_zero) {
|
||||
if (ret && opt_zero) {
|
||||
memset((void*)((uintptr_t)aPtr + aOldSize), 0, aSize - aOldSize);
|
||||
}
|
||||
return ret;
|
||||
@ -3792,7 +3794,7 @@ arena_ralloc(void* aPtr, size_t aSize, size_t aOldSize, arena_t* aArena)
|
||||
}
|
||||
} else if (aOldSize > bin_maxclass && aOldSize <= arena_maxclass) {
|
||||
MOZ_ASSERT(aSize > bin_maxclass);
|
||||
if (arena_ralloc_large(aPtr, aSize, aOldSize) == false) {
|
||||
if (arena_ralloc_large(aPtr, aSize, aOldSize)) {
|
||||
return aPtr;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user