mirror of
https://github.com/python/cpython.git
synced 2025-10-21 14:12:27 +00:00
gh-99300: Use Py_NewRef() in Python/ directory (#99302)
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in C files of the Python/ directory.
This commit is contained in:
parent
f883b7f8ee
commit
d8f239d86e
14 changed files with 41 additions and 80 deletions
|
|
@ -944,9 +944,8 @@ _PyState_AddModule(PyThreadState *tstate, PyObject* module, PyModuleDef* def)
|
|||
}
|
||||
}
|
||||
|
||||
Py_INCREF(module);
|
||||
return PyList_SetItem(interp->modules_by_index,
|
||||
def->m_base.m_index, module);
|
||||
def->m_base.m_index, Py_NewRef(module));
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -994,8 +993,7 @@ PyState_RemoveModule(PyModuleDef* def)
|
|||
Py_FatalError("Module index out of bounds.");
|
||||
}
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return PyList_SetItem(interp->modules_by_index, index, Py_None);
|
||||
return PyList_SetItem(interp->modules_by_index, index, Py_NewRef(Py_None));
|
||||
}
|
||||
|
||||
// Used by finalize_modules()
|
||||
|
|
@ -1299,8 +1297,7 @@ PyThreadState_GetFrame(PyThreadState *tstate)
|
|||
if (frame == NULL) {
|
||||
PyErr_Clear();
|
||||
}
|
||||
Py_XINCREF(frame);
|
||||
return frame;
|
||||
return (PyFrameObject*)Py_XNewRef(frame);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1346,8 +1343,7 @@ PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
|
|||
* the decref.
|
||||
*/
|
||||
PyObject *old_exc = tstate->async_exc;
|
||||
Py_XINCREF(exc);
|
||||
tstate->async_exc = exc;
|
||||
tstate->async_exc = Py_XNewRef(exc);
|
||||
HEAD_UNLOCK(runtime);
|
||||
|
||||
Py_XDECREF(old_exc);
|
||||
|
|
@ -2027,8 +2023,7 @@ _bytes_shared(PyObject *obj, _PyCrossInterpreterData *data)
|
|||
return -1;
|
||||
}
|
||||
data->data = (void *)shared;
|
||||
Py_INCREF(obj);
|
||||
data->obj = obj; // Will be "released" (decref'ed) when data released.
|
||||
data->obj = Py_NewRef(obj); // Will be "released" (decref'ed) when data released.
|
||||
data->new_object = _new_bytes_object;
|
||||
data->free = PyMem_Free;
|
||||
return 0;
|
||||
|
|
@ -2055,8 +2050,7 @@ _str_shared(PyObject *obj, _PyCrossInterpreterData *data)
|
|||
shared->buffer = PyUnicode_DATA(obj);
|
||||
shared->len = PyUnicode_GET_LENGTH(obj);
|
||||
data->data = (void *)shared;
|
||||
Py_INCREF(obj);
|
||||
data->obj = obj; // Will be "released" (decref'ed) when data released.
|
||||
data->obj = Py_NewRef(obj); // Will be "released" (decref'ed) when data released.
|
||||
data->new_object = _new_str_object;
|
||||
data->free = PyMem_Free;
|
||||
return 0;
|
||||
|
|
@ -2093,8 +2087,7 @@ static PyObject *
|
|||
_new_none_object(_PyCrossInterpreterData *data)
|
||||
{
|
||||
// XXX Singleton refcounts are problematic across interpreters...
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
return Py_NewRef(Py_None);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue