aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/optimizer_bytecodes.c5
-rw-r--r--Python/optimizer_cases.c.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c
index f12cd7b968c..b9ebd8678e0 100644
--- a/Python/optimizer_bytecodes.c
+++ b/Python/optimizer_bytecodes.c
@@ -528,7 +528,10 @@ dummy_func(void) {
}
op(_LOAD_SMALL_INT, (-- value)) {
- PyObject *val = PyLong_FromLong(this_instr->oparg);
+ PyObject *val = PyLong_FromLong(oparg);
+ assert(val);
+ assert(_Py_IsImmortal(val));
+ REPLACE_OP(this_instr, _LOAD_CONST_INLINE_BORROW, 0, (uintptr_t)val);
value = sym_new_const(ctx, val);
}
diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h
index 602f5e2cfaf..0ba45e1f58f 100644
--- a/Python/optimizer_cases.c.h
+++ b/Python/optimizer_cases.c.h
@@ -79,7 +79,10 @@
case _LOAD_SMALL_INT: {
JitOptSymbol *value;
- PyObject *val = PyLong_FromLong(this_instr->oparg);
+ PyObject *val = PyLong_FromLong(oparg);
+ assert(val);
+ assert(_Py_IsImmortal(val));
+ REPLACE_OP(this_instr, _LOAD_CONST_INLINE_BORROW, 0, (uintptr_t)val);
value = sym_new_const(ctx, val);
stack_pointer[0] = value;
stack_pointer += 1;