summaryrefslogtreecommitdiffstats
path: root/Python/generated_cases.c.h
diff options
context:
space:
mode:
Diffstat (limited to 'Python/generated_cases.c.h')
-rw-r--r--Python/generated_cases.c.h57
1 files changed, 49 insertions, 8 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index 0bc92f3..5820147 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -1082,7 +1082,9 @@
frame, this_instr, callable_o, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(res_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -1842,7 +1844,9 @@
frame, this_instr, func, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(result_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -2163,7 +2167,9 @@
frame, this_instr, callable_o, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(res_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -3837,7 +3843,11 @@
stack_pointer = _PyFrame_GetStackPointer(frame);
goto error;
}
- SETLOCAL(oparg, PyStackRef_NULL);
+ _PyStackRef tmp = GETLOCAL(oparg);
+ GETLOCAL(oparg) = PyStackRef_NULL;
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
DISPATCH();
}
@@ -4781,7 +4791,9 @@
frame, this_instr, callable_o, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(res_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -4920,7 +4932,9 @@
frame, this_instr, func, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(result_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -5155,7 +5169,9 @@
frame, this_instr, callable_o, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(res_o);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -5421,7 +5437,9 @@
frame, this_instr, global_super, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(super);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -6858,7 +6876,6 @@
INSTRUCTION_STATS(LOAD_FAST_AND_CLEAR);
_PyStackRef value;
value = GETLOCAL(oparg);
- // do not use SETLOCAL here, it decrefs the old value
GETLOCAL(oparg) = PyStackRef_NULL;
stack_pointer[0] = value;
stack_pointer += 1;
@@ -7338,7 +7355,9 @@
frame, this_instr, global_super, arg);
stack_pointer = _PyFrame_GetStackPointer(frame);
if (err < 0) {
+ _PyFrame_SetStackPointer(frame, stack_pointer);
Py_CLEAR(super);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
}
}
}
@@ -7472,7 +7491,11 @@
if (cell == NULL) {
goto error;
}
- SETLOCAL(oparg, PyStackRef_FromPyObjectSteal(cell));
+ _PyStackRef tmp = GETLOCAL(oparg);
+ GETLOCAL(oparg) = PyStackRef_FromPyObjectSteal(cell);
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
DISPATCH();
}
@@ -8545,9 +8568,13 @@
INSTRUCTION_STATS(STORE_FAST);
_PyStackRef value;
value = stack_pointer[-1];
- SETLOCAL(oparg, value);
+ _PyStackRef tmp = GETLOCAL(oparg);
+ GETLOCAL(oparg) = value;
stack_pointer += -1;
assert(WITHIN_STACK_BOUNDS());
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
DISPATCH();
}
@@ -8560,9 +8587,13 @@
value1 = stack_pointer[-1];
uint32_t oparg1 = oparg >> 4;
uint32_t oparg2 = oparg & 15;
- SETLOCAL(oparg1, value1);
+ _PyStackRef tmp = GETLOCAL(oparg1);
+ GETLOCAL(oparg1) = value1;
value2 = PyStackRef_DUP(GETLOCAL(oparg2));
stack_pointer[-1] = value2;
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
DISPATCH();
}
@@ -8576,10 +8607,20 @@
value2 = stack_pointer[-2];
uint32_t oparg1 = oparg >> 4;
uint32_t oparg2 = oparg & 15;
- SETLOCAL(oparg1, value1);
- SETLOCAL(oparg2, value2);
- stack_pointer += -2;
+ _PyStackRef tmp = GETLOCAL(oparg1);
+ GETLOCAL(oparg1) = value1;
+ stack_pointer += -1;
assert(WITHIN_STACK_BOUNDS());
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
+ tmp = GETLOCAL(oparg2);
+ GETLOCAL(oparg2) = value2;
+ stack_pointer += -1;
+ assert(WITHIN_STACK_BOUNDS());
+ _PyFrame_SetStackPointer(frame, stack_pointer);
+ PyStackRef_XCLOSE(tmp);
+ stack_pointer = _PyFrame_GetStackPointer(frame);
DISPATCH();
}