Loading...
--- libmalloc/libmalloc-521.100.59/src/legacy_malloc.c
+++ libmalloc/libmalloc-140.40.1/src/legacy_malloc.c
@@ -33,11 +33,11 @@
 	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)) {
-		malloc_report(ASL_LEVEL_INFO, "legacy_valloc returned %p\n", ptr);
+		malloc_printf("legacy_valloc returned %p\n", ptr);
 	}
 #endif
 	return 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 = LARGE_THRESHOLD;
+	szone->vm_copy_threshold = VM_COPY_THRESHOLD;
 
 	mprotect(szone, sizeof(szone->basic_zone), PROT_READ | PROT_WRITE);
 	szone->basic_zone.valloc = (void *)legacy_valloc;