diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-08-28 15:36:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-28 15:36:08 +0200 |
commit | b791efdb1642dcbe0a0572072a176ba39d47c9e1 (patch) | |
tree | 35561af3bbd80b4714ed10e4c5c018eec56b93d4 /modules/gdscript/gdscript_function.cpp | |
parent | 4aed4b44b633721b674e3325e760abbb94984fd7 (diff) | |
parent | 112aa6e367e4115114f0bf2145c9f988beb7bcfa (diff) |
Merge pull request #31737 from bojidar-bg/31455-stack-underflow
Fix yield check in GDScriptFunction
Diffstat (limited to 'modules/gdscript/gdscript_function.cpp')
-rw-r--r-- | modules/gdscript/gdscript_function.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp index dc0e64fd03..68f2a9473e 100644 --- a/modules/gdscript/gdscript_function.cpp +++ b/modules/gdscript/gdscript_function.cpp @@ -431,6 +431,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a profile.frame_call_count++; } bool exit_ok = false; + bool yielded = false; #endif #ifdef DEBUG_ENABLED @@ -1323,6 +1324,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a #ifdef DEBUG_ENABLED exit_ok = true; + yielded = true; #endif OPCODE_BREAK; } @@ -1589,8 +1591,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a GDScriptLanguage::get_singleton()->script_frame_time += time_taken - function_call_time; } - bool yielded = retvalue.is_ref() && Object::cast_to<GDScriptFunctionState>(retvalue); - // Check if this is the last time the function is resuming from yield // Will be true if never yielded as well // When it's the last resume it will postpone the exit from stack, |