Loading...
--- libmalloc/libmalloc-792.41.1/src/legacy_malloc.c
+++ libmalloc/libmalloc-166.220.1/src/legacy_malloc.c
@@ -33,7 +33,7 @@
void *ptr;
size_t num_kernel_pages;
- num_kernel_pages = round_large_page_quanta(size) >> large_vm_page_quanta_shift;
+ num_kernel_pages = round_page_quanta(size) >> vm_page_quanta_shift;
ptr = large_malloc(szone, num_kernel_pages, 0, TRUE);
#if DEBUG_MALLOC
if (LOG(szone, ptr)) {
@@ -46,12 +46,17 @@
malloc_zone_t *
create_legacy_scalable_zone(size_t initial_size, unsigned debug_flags)
{
- malloc_zone_t *mzone = create_scalable_zone(initial_size, debug_flags);
+ // legacy always uses 32 small slots
+ malloc_zone_t *mzone = create_scalable_zone(initial_size, debug_flags & ~MALLOC_EXTENDED_SMALL_SLOTS);
szone_t *szone = (szone_t *)mzone;
if (!szone) {
return NULL;
}
+
+ szone->is_largemem = 0;
+ szone->large_threshold = (15 * 1024);
+ szone->vm_copy_threshold = (40 * 1024);
mprotect(szone, sizeof(szone->basic_zone), PROT_READ | PROT_WRITE);
szone->basic_zone.valloc = (void *)legacy_valloc;