You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
volatilemachine_uint_tcurrently_in_except_block=0; // 0 or 1, to detect nested exceptions
122
-
mp_exc_stack*volatileexc_sp=*exc_sp_in_out; // stack grows up, exc_sp points to top of stack
121
+
volatilemachine_uint_tcurrently_in_except_block=(int)*exc_sp_in_out&1; // 0 or 1, to detect nested exceptions
122
+
mp_exc_stack*volatileexc_sp=(void*)((int)*exc_sp_in_out& ~1); // stack grows up, exc_sp points to top of stack
123
123
constbyte*volatilesave_ip=ip; // this is so we can access ip in the exception handler without making ip volatile (which means the compiler can't keep it in a register in the main loop)
124
124
125
125
// outer exception handling loop
126
126
for (;;) {
127
127
if (nlr_push(&nlr) ==0) {
128
+
// If we have exception to inject, now that we finish setting up
129
+
// execution context, raise it. This works as if RAISE_VARARGS
0 commit comments