Bug 1418153 - Fold imalloc into arena_t::Malloc. r?njn
--- a/memory/build/mozjemalloc.cpp
+++ b/memory/build/mozjemalloc.cpp
@@ -3067,32 +3067,24 @@ arena_t::MallocLarge(size_t aSize, bool
return ret;
}
void*
arena_t::Malloc(size_t aSize, bool aZero)
{
MOZ_DIAGNOSTIC_ASSERT(mMagic == ARENA_MAGIC);
MOZ_ASSERT(aSize != 0);
- MOZ_ASSERT(QUANTUM_CEILING(aSize) <= gMaxLargeClass);
-
- return (aSize <= gMaxBinClass) ? MallocSmall(aSize, aZero)
- : MallocLarge(aSize, aZero);
-}
-
-static inline void*
-imalloc(size_t aSize, bool aZero, arena_t* aArena)
-{
- MOZ_ASSERT(aSize != 0);
-
- MOZ_ASSERT(aArena);
+
+ if (aSize <= gMaxBinClass) {
+ return MallocSmall(aSize, aZero);
+ }
if (aSize <= gMaxLargeClass) {
- return aArena->Malloc(aSize, aZero);
- }
- return aArena->MallocHuge(aSize, aZero);
+ return MallocLarge(aSize, aZero);
+ }
+ return MallocHuge(aSize, aZero);
}
// Only handles large allocations that require more than page alignment.
void*
arena_t::PallocLarge(size_t aAlignment, size_t aSize, size_t aAllocSize)
{
void* ret;
size_t offset;
@@ -4261,17 +4253,17 @@ BaseAllocator::malloc(size_t aSize)
ret = nullptr;
goto RETURN;
}
if (aSize == 0) {
aSize = 1;
}
arena = mArena ? mArena : choose_arena(aSize);
- ret = imalloc(aSize, /* zero = */ false, arena);
+ ret = arena->Malloc(aSize, /* zero = */ false);
RETURN:
if (!ret) {
errno = ENOMEM;
}
return ret;
}
@@ -4302,17 +4294,17 @@ BaseAllocator::calloc(size_t aNum, size_
if (malloc_init()) {
CheckedInt<size_t> checkedSize = CheckedInt<size_t>(aNum) * aSize;
if (checkedSize.isValid()) {
size_t allocSize = checkedSize.value();
if (allocSize == 0) {
allocSize = 1;
}
arena_t* arena = mArena ? mArena : choose_arena(allocSize);
- ret = imalloc(allocSize, /* zero = */ true, arena);
+ ret = arena->Malloc(allocSize, /* zero = */ true);
} else {
ret = nullptr;
}
} else {
ret = nullptr;
}
if (!ret) {
@@ -4339,17 +4331,17 @@ BaseAllocator::realloc(void* aPtr, size_
if (!ret) {
errno = ENOMEM;
}
} else {
if (!malloc_init()) {
ret = nullptr;
} else {
arena_t* arena = mArena ? mArena : choose_arena(aSize);
- ret = imalloc(aSize, /* zero = */ false, arena);
+ ret = arena->Malloc(aSize, /* zero = */ false);
}
if (!ret) {
errno = ENOMEM;
}
}
return ret;