Skip to content

Commit e6543da

Browse files
gh-117139: Fix a few wrong steals in bytecodes.c (GH-121127)
Fix a few wrong steals in bytecodes.c
1 parent 2894aa1 commit e6543da

File tree

4 files changed

+33
-33
lines changed

4 files changed

+33
-33
lines changed

Python/bytecodes.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ dummy_func(
230230
}
231231

232232
replicate(8) pure inst(LOAD_FAST, (-- value)) {
233-
assert(PyStackRef_AsPyObjectBorrow(GETLOCAL(oparg)) != NULL);
233+
assert(!PyStackRef_IsNull(GETLOCAL(oparg)));
234234
value = PyStackRef_DUP(GETLOCAL(oparg));
235235
}
236236

@@ -673,7 +673,7 @@ dummy_func(
673673
err = 1;
674674
}
675675
else {
676-
err = PyObject_SetItem(PyStackRef_AsPyObjectBorrow(container), slice, PyStackRef_AsPyObjectSteal(v));
676+
err = PyObject_SetItem(PyStackRef_AsPyObjectBorrow(container), slice, PyStackRef_AsPyObjectBorrow(v));
677677
Py_DECREF(slice);
678678
}
679679
PyStackRef_CLOSE(v);
@@ -789,7 +789,7 @@ dummy_func(
789789

790790
inst(SET_ADD, (set, unused[oparg-1], v -- set, unused[oparg-1])) {
791791
int err = PySet_Add(PyStackRef_AsPyObjectBorrow(set),
792-
PyStackRef_AsPyObjectSteal(v));
792+
PyStackRef_AsPyObjectBorrow(v));
793793
DECREF_INPUTS();
794794
ERROR_IF(err, error);
795795
}
@@ -813,7 +813,7 @@ dummy_func(
813813

814814
op(_STORE_SUBSCR, (v, container, sub -- )) {
815815
/* container[sub] = v */
816-
int err = PyObject_SetItem(PyStackRef_AsPyObjectBorrow(container), PyStackRef_AsPyObjectSteal(sub), PyStackRef_AsPyObjectSteal(v));
816+
int err = PyObject_SetItem(PyStackRef_AsPyObjectBorrow(container), PyStackRef_AsPyObjectBorrow(sub), PyStackRef_AsPyObjectBorrow(v));
817817
DECREF_INPUTS();
818818
ERROR_IF(err, error);
819819
}
@@ -1235,7 +1235,7 @@ dummy_func(
12351235
inst(POP_EXCEPT, (exc_value -- )) {
12361236
_PyErr_StackItem *exc_info = tstate->exc_info;
12371237
Py_XSETREF(exc_info->exc_value,
1238-
PyStackRef_AsPyObjectBorrow(exc_value) == Py_None
1238+
PyStackRef_Is(exc_value, PyStackRef_None)
12391239
? NULL : PyStackRef_AsPyObjectSteal(exc_value));
12401240
}
12411241

@@ -1330,9 +1330,9 @@ dummy_func(
13301330
ERROR_IF(true, error);
13311331
}
13321332
if (PyDict_CheckExact(ns))
1333-
err = PyDict_SetItem(ns, name, PyStackRef_AsPyObjectSteal(v));
1333+
err = PyDict_SetItem(ns, name, PyStackRef_AsPyObjectBorrow(v));
13341334
else
1335-
err = PyObject_SetItem(ns, name, PyStackRef_AsPyObjectSteal(v));
1335+
err = PyObject_SetItem(ns, name, PyStackRef_AsPyObjectBorrow(v));
13361336
DECREF_INPUTS();
13371337
ERROR_IF(err, error);
13381338
}
@@ -1450,7 +1450,7 @@ dummy_func(
14501450
op(_STORE_ATTR, (v, owner --)) {
14511451
PyObject *name = GETITEM(FRAME_CO_NAMES, oparg);
14521452
int err = PyObject_SetAttr(PyStackRef_AsPyObjectBorrow(owner),
1453-
name, PyStackRef_AsPyObjectSteal(v));
1453+
name, PyStackRef_AsPyObjectBorrow(v));
14541454
DECREF_INPUTS();
14551455
ERROR_IF(err, error);
14561456
}

Python/ceval.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1619,7 +1619,7 @@ initialize_locals(PyThreadState *tstate, PyFunctionObject *func,
16191619
goto kw_fail;
16201620
}
16211621

1622-
if (PyDict_SetItem(kwdict, keyword, PyStackRef_AsPyObjectSteal(value_stackref)) == -1) {
1622+
if (PyDict_SetItem(kwdict, keyword, PyStackRef_AsPyObjectBorrow(value_stackref)) == -1) {
16231623
goto kw_fail;
16241624
}
16251625
PyStackRef_CLOSE(value_stackref);

Python/executor_cases.c.h

+16-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

+8-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)