Commits

Mark Shannon committed 32a8328 Draft

Materialise on exit in EXIT_IF_VALUE_IN_OBJECT_DICT, otherwise impossible to handle in DOC.

Comments (0)

Files changed (1)

Python/trace_interpreter.c

             Py_DECREF(w);
             Py_DECREF(v);
             if (x != NULL) {
-                PUSH(x);
                 exit = (HotPyExitObject *)GETITEM(trace->trace_exits, oparg);
-                goto rare_exit;
+                HotPy_RestoreThreadState(tstate, exit->exit_context);
+                next_instr = HotPyIP_ToAddr(exit->exit_context->cf_instrs[0]);
+                PUSH_TO_REAL(x);
+                Py_DECREF(trace);
+                return (HotPyReturnValue)
+                    { next_instr, WHY_NOT};
             }
             FAST_DISPATCH();