Merge pull request #31737 from bojidar-bg/31455-stack-underflow
Fix yield check in GDScriptFunction
This commit is contained in:
commit
b791efdb16
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue