(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:
yexo 2009-05-27 23:59:51 +00:00
parent e7a087b08b
commit 5357fa2467

View File

@ -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;