From acc2c961a19fdcf64ff6d12821372032a2631118 Mon Sep 17 00:00:00 2001 From: Mikael Hermansson Date: Wed, 25 Mar 2026 16:03:31 +0100 Subject: [PATCH] Change `GDScriptFunction::temporary_slots` to be a `LocalVector` --- modules/gdscript/gdscript_byte_codegen.cpp | 2 +- modules/gdscript/gdscript_function.h | 2 +- modules/gdscript/gdscript_vm.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/gdscript/gdscript_byte_codegen.cpp b/modules/gdscript/gdscript_byte_codegen.cpp index 7a6fcc92a0..1b5da0eac1 100644 --- a/modules/gdscript/gdscript_byte_codegen.cpp +++ b/modules/gdscript/gdscript_byte_codegen.cpp @@ -189,7 +189,7 @@ GDScriptFunction *GDScriptByteCodeGenerator::write_end() { opcodes.write[temporaries[i].bytecode_indices[j]] = stack_index | (GDScriptFunction::ADDR_TYPE_STACK << GDScriptFunction::ADDR_BITS); } if (temporaries[i].type != Variant::NIL) { - function->temporary_slots[stack_index] = temporaries[i].type; + function->temporary_slots.push_back(Pair(stack_index, temporaries[i].type)); } } diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h index ee6f2515a9..8171a0f125 100644 --- a/modules/gdscript/gdscript_function.h +++ b/modules/gdscript/gdscript_function.h @@ -360,7 +360,7 @@ private: SelfList function_list{ this }; mutable Variant nil; - HashMap temporary_slots; + TightLocalVector> temporary_slots; List stack_debug; Vector code; diff --git a/modules/gdscript/gdscript_vm.cpp b/modules/gdscript/gdscript_vm.cpp index 41f205e318..b389015aa2 100644 --- a/modules/gdscript/gdscript_vm.cpp +++ b/modules/gdscript/gdscript_vm.cpp @@ -648,8 +648,8 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a instruction_args = nullptr; } - for (const KeyValue &E : temporary_slots) { - type_init_function_table[E.value](&stack[E.key]); + for (const Pair &E : temporary_slots) { + type_init_function_table[E.second](&stack[E.first]); } }