Procházet zdrojové kódy

Only swap if there was an arena

gingerBill před 1 rokem
rodič
revize
f19436fb4d
1 změnil soubory, kde provedl 4 přidání a 2 odebrání
  1. 4 2
      core/os/os2/allocators.odin

+ 4 - 2
core/os/os2/allocators.odin

@@ -48,9 +48,11 @@ temp_allocator_fini :: proc() {
 	global_default_temp_allocator_arenas = {}
 }
 
-TEMP_ALLOCATOR_GUARD_END :: proc(temp: runtime.Arena_Temp loc := #caller_location) {
+TEMP_ALLOCATOR_GUARD_END :: proc(temp: runtime.Arena_Temp, loc := #caller_location) {
 	runtime.arena_temp_end(temp, loc)
-	global_default_temp_allocator_index = (global_default_temp_allocator_index-1)%MAX_TEMP_ARENA_COUNT
+	if temp.arena != nil {
+		global_default_temp_allocator_index = (global_default_temp_allocator_index-1)%MAX_TEMP_ARENA_COUNT
+	}
 }
 
 @(deferred_out=TEMP_ALLOCATOR_GUARD_END)