diff --git a/squirrel/sqvm.cpp b/squirrel/sqvm.cpp index 5a8a6e8..b20df9a 100644 --- a/squirrel/sqvm.cpp +++ b/squirrel/sqvm.cpp @@ -726,9 +726,13 @@ exception_restore: if (type(t) == OT_CLOSURE && (!_closure(t)->_function->_bgenerator)){ SQObjectPtr clo = t; + SQInteger last_top = _top; if(_openouters) CloseOuters(&(_stack._vals[_stackbase])); for (SQInteger i = 0; i < arg3; i++) STK(i) = STK(arg2 + i); _GUARD(StartCall(_closure(clo), ci->_target, arg3, _stackbase, true)); + if (last_top >= _top) { + _top = last_top; + } continue; } }