Issue #20440: Cleaning up the code by using Py_SETREF.
diff --git a/Python/import.c b/Python/import.c
index 8d7bfe9..325b936 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -879,10 +879,8 @@
if (PyUnicode_Compare(co->co_filename, oldname))
return;
- tmp = co->co_filename;
- co->co_filename = newname;
- Py_INCREF(co->co_filename);
- Py_DECREF(tmp);
+ Py_INCREF(newname);
+ Py_SETREF(co->co_filename, newname);
constants = co->co_consts;
n = PyTuple_GET_SIZE(constants);
@@ -1327,10 +1325,8 @@
(always_trim ||
PyUnicode_CompareWithASCIIString(code->co_name,
remove_frames) == 0)) {
- PyObject *tmp = *outer_link;
- *outer_link = next;
Py_XINCREF(next);
- Py_DECREF(tmp);
+ Py_SETREF(*outer_link, next);
prev_link = outer_link;
}
else {
diff --git a/Python/peephole.c b/Python/peephole.c
index 59ad3b7..4bf786e 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -118,9 +118,7 @@
/* If it's a BUILD_SET, use the PyTuple we just built to create a
PyFrozenSet, and use that as the constant instead: */
if (codestr[0] == BUILD_SET) {
- PyObject *tuple = newconst;
- newconst = PyFrozenSet_New(tuple);
- Py_DECREF(tuple);
+ Py_SETREF(newconst, PyFrozenSet_New(newconst));
if (newconst == NULL)
return 0;
}
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index f784f75..53dd4a1 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -436,10 +436,7 @@
return -1;
}
if (result != Py_None) {
- PyObject *temp = frame->f_trace;
- frame->f_trace = NULL;
- Py_XDECREF(temp);
- frame->f_trace = result;
+ Py_SETREF(frame->f_trace, result);
}
else {
Py_DECREF(result);