Reproduction steps:
1. Open the attached “Allocator Crash Example” project
2. Open “SampleScene”
3. Enter Play Mode
4. Observe the crash
Reproducible with: 2.1.4, 2.2.1, 2.3.0-pre.3 (2023.1.20f1, 2023.2.0f1)
Reproducible on: macOS Sonoma 14.0 (Intel), Windows 10 (by the reporter)
Not reproducible on: no other environment tested
Notes:
- Crash happens in “CrashExample.cs” script
- Also reproducible in Standalone Player
first few lines of Stack Trace:
{{0x00007FF83E9D9992 (Unity) block_remove }}
{{0x00007FF83E9D9DF4 (Unity) tlsf_free }}
{{0x00007FF83C7A86B5 (Unity) DynamicHeapAllocator::Deallocate }}
{{0x00007FF83C7B969F (Unity) DualThreadAllocator<DynamicHeapAllocator>::TryDeallocate }}
0x00007FF83C7A8D58 (Unity) MemoryManager::Deallocate
{{#0 0x0000010b03efe0 in block_merge_next }}
{{#1 0x0000010b03eebf in tlsf_free }}
{{#2 0x00000108a23112 in DynamicHeapAllocator::Deallocate(void*) }}
{{#3 0x00000108a31ab1 in DelayedPointerDeletionManager::CleanupPendingMainThreadPointers() }}
#4 0x00000108a31ee8 in DualThreadAllocator<DynamicHeapAllocator>::Allocate(unsigned long, int)