mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r16454) -Fix (r16181, r16241): fix the try/catch bug fixed in r16181 and reintroduced in r16241 again, this time without breaking the regression test.
This commit is contained in:
parent
e7a087b08b
commit
5357fa2467
11
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
11
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
@ -749,7 +749,16 @@ common_call:
|
|||||||
case OT_NATIVECLOSURE: {
|
case OT_NATIVECLOSURE: {
|
||||||
bool suspend;
|
bool suspend;
|
||||||
_suspended_target = ct_target;
|
_suspended_target = ct_target;
|
||||||
_GUARD(CallNative(_nativeclosure(clo), arg3, ct_stackbase, clo,suspend));
|
try {
|
||||||
|
_GUARD(CallNative(_nativeclosure(clo), arg3, ct_stackbase, clo,suspend));
|
||||||
|
} catch (...) {
|
||||||
|
_suspended = SQTrue;
|
||||||
|
_suspended_target = ct_target;
|
||||||
|
_suspended_root = ci->_root;
|
||||||
|
_suspended_traps = traps;
|
||||||
|
_suspend_varargs = ci->_vargs;
|
||||||
|
throw;
|
||||||
|
}
|
||||||
if(suspend){
|
if(suspend){
|
||||||
_suspended = SQTrue;
|
_suspended = SQTrue;
|
||||||
_suspended_target = ct_target;
|
_suspended_target = ct_target;
|
||||||
|
Loading…
Reference in New Issue
Block a user