gh-99300: Replace Py_INCREF() with Py_NewRef() (#99513)

Replace Py_INCREF() and Py_XINCREF() using a cast with Py_NewRef()
and Py_XNewRef().
This commit is contained in:
Victor Stinner 2022-11-16 10:39:47 +01:00 committed by GitHub
parent ea88d34de2
commit 3ed8803ef5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 22 additions and 44 deletions

View File

@ -1756,8 +1756,7 @@ future_new_iter(PyObject *fut)
} }
} }
Py_INCREF(fut); it->future = (FutureObj*)Py_NewRef(fut);
it->future = (FutureObj*)fut;
PyObject_GC_Track(it); PyObject_GC_Track(it);
return (PyObject*)it; return (PyObject*)it;
} }
@ -1821,8 +1820,7 @@ static PyObject *
TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored)) TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored))
{ {
if (o->sw_task) { if (o->sw_task) {
Py_INCREF(o->sw_task); return Py_NewRef(o->sw_task);
return (PyObject*)o->sw_task;
} }
Py_RETURN_NONE; Py_RETURN_NONE;
} }

View File

@ -2937,8 +2937,7 @@ PyCData_FromBaseObj(PyObject *type, PyObject *base, Py_ssize_t index, char *adr)
assert(CDataObject_Check(base)); assert(CDataObject_Check(base));
cmem->b_ptr = adr; cmem->b_ptr = adr;
cmem->b_needsfree = 0; cmem->b_needsfree = 0;
Py_INCREF(base); cmem->b_base = (CDataObject *)Py_NewRef(base);
cmem->b_base = (CDataObject *)base;
cmem->b_index = index; cmem->b_index = index;
} else { /* copy contents of adr */ } else { /* copy contents of adr */
if (-1 == PyCData_MallocBuffer(cmem, dict)) { if (-1 == PyCData_MallocBuffer(cmem, dict)) {

View File

@ -230,8 +230,7 @@ PyCField_get(CFieldObject *self, PyObject *inst, PyTypeObject *type)
{ {
CDataObject *src; CDataObject *src;
if (inst == NULL) { if (inst == NULL) {
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
if (!CDataObject_Check(inst)) { if (!CDataObject_Check(inst)) {
PyErr_SetString(PyExc_TypeError, PyErr_SetString(PyExc_TypeError,

View File

@ -933,8 +933,7 @@ _elementtree_Element___getstate___impl(ElementObject *self)
if (!children) if (!children)
return NULL; return NULL;
for (i = 0; i < PyList_GET_SIZE(children); i++) { for (i = 0; i < PyList_GET_SIZE(children); i++) {
PyObject *child = self->extra->children[i]; PyObject *child = Py_NewRef(self->extra->children[i]);
Py_INCREF(child);
PyList_SET_ITEM(children, i, child); PyList_SET_ITEM(children, i, child);
} }
@ -1365,8 +1364,7 @@ _elementtree_Element_get_impl(ElementObject *self, PyObject *key,
/*[clinic end generated code: output=523c614142595d75 input=ee153bbf8cdb246e]*/ /*[clinic end generated code: output=523c614142595d75 input=ee153bbf8cdb246e]*/
{ {
if (self->extra && self->extra->attrib) { if (self->extra && self->extra->attrib) {
PyObject *attrib = self->extra->attrib; PyObject *attrib = Py_NewRef(self->extra->attrib);
Py_INCREF(attrib);
PyObject *value = PyDict_GetItemWithError(attrib, key); PyObject *value = PyDict_GetItemWithError(attrib, key);
Py_XINCREF(value); Py_XINCREF(value);
Py_DECREF(attrib); Py_DECREF(attrib);
@ -1723,8 +1721,7 @@ element_subscr(PyObject* self_, PyObject* item)
for (cur = start, i = 0; i < slicelen; for (cur = start, i = 0; i < slicelen;
cur += step, i++) { cur += step, i++) {
PyObject* item = self->extra->children[cur]; PyObject* item = Py_NewRef(self->extra->children[cur]);
Py_INCREF(item);
PyList_SET_ITEM(list, i, item); PyList_SET_ITEM(list, i, item);
} }
@ -2761,8 +2758,7 @@ treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
if (treebuilder_append_event(self, self->end_event_obj, self->last) < 0) if (treebuilder_append_event(self, self->end_event_obj, self->last) < 0)
return NULL; return NULL;
Py_INCREF(self->last); return Py_NewRef(self->last);
return (PyObject*) self->last;
} }
LOCAL(PyObject*) LOCAL(PyObject*)

View File

@ -1787,8 +1787,7 @@ ndarray_subscript(NDArrayObject *self, PyObject *key)
return unpack_single(base->buf, base->format, base->itemsize); return unpack_single(base->buf, base->format, base->itemsize);
} }
else if (key == Py_Ellipsis) { else if (key == Py_Ellipsis) {
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
else { else {
PyErr_SetString(PyExc_TypeError, "invalid indexing of scalar"); PyErr_SetString(PyExc_TypeError, "invalid indexing of scalar");

View File

@ -137,11 +137,9 @@ get_timezone_utc_capi(PyObject *self, PyObject *args)
return NULL; return NULL;
} }
if (macro) { if (macro) {
Py_INCREF(PyDateTime_TimeZone_UTC); return Py_NewRef(PyDateTime_TimeZone_UTC);
return PyDateTime_TimeZone_UTC;
} }
Py_INCREF(PyDateTimeAPI->TimeZone_UTC); return Py_NewRef(PyDateTimeAPI->TimeZone_UTC);
return PyDateTimeAPI->TimeZone_UTC;
} }
static PyObject * static PyObject *

View File

@ -746,8 +746,7 @@ mmap__enter__method(mmap_object *self, PyObject *args)
{ {
CHECK_VALID(NULL); CHECK_VALID(NULL);
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
static PyObject * static PyObject *

View File

@ -1652,8 +1652,7 @@ select_epoll___enter___impl(pyEpoll_Object *self)
if (self->epfd < 0) if (self->epfd < 0)
return pyepoll_err_closed(); return pyepoll_err_closed();
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
/*[clinic input] /*[clinic input]

View File

@ -205,8 +205,7 @@ syslog_syslog_impl(PyObject *module, int group_left_1, int priority,
/* Incref ident, because it can be decrefed if syslog.openlog() is /* Incref ident, because it can be decrefed if syslog.openlog() is
* called when the GIL is released. * called when the GIL is released.
*/ */
PyObject *ident = S_ident_o; PyObject *ident = Py_XNewRef(S_ident_o);
Py_XINCREF(ident);
#ifdef __APPLE__ #ifdef __APPLE__
// gh-98178: On macOS, libc syslog() is not thread-safe // gh-98178: On macOS, libc syslog() is not thread-safe
syslog(priority, "%s", message); syslog(priority, "%s", message);

View File

@ -313,8 +313,7 @@ bytearray_iconcat(PyByteArrayObject *self, PyObject *other)
} }
memcpy(PyByteArray_AS_STRING(self) + size, vo.buf, vo.len); memcpy(PyByteArray_AS_STRING(self) + size, vo.buf, vo.len);
PyBuffer_Release(&vo); PyBuffer_Release(&vo);
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
static PyObject * static PyObject *
@ -340,8 +339,7 @@ bytearray_irepeat(PyByteArrayObject *self, Py_ssize_t count)
if (count < 0) if (count < 0)
count = 0; count = 0;
else if (count == 1) { else if (count == 1) {
Py_INCREF(self); return Py_NewRef(self);
return (PyObject*)self;
} }
const Py_ssize_t mysize = Py_SIZE(self); const Py_ssize_t mysize = Py_SIZE(self);
@ -354,8 +352,7 @@ bytearray_irepeat(PyByteArrayObject *self, Py_ssize_t count)
char* buf = PyByteArray_AS_STRING(self); char* buf = PyByteArray_AS_STRING(self);
_PyBytes_Repeat(buf, size, buf, mysize); _PyBytes_Repeat(buf, size, buf, mysize);
Py_INCREF(self); return Py_NewRef(self);
return (PyObject *)self;
} }
static PyObject * static PyObject *
@ -2477,8 +2474,7 @@ bytearray_iter(PyObject *seq)
if (it == NULL) if (it == NULL)
return NULL; return NULL;
it->it_index = 0; it->it_index = 0;
Py_INCREF(seq); it->it_seq = (PyByteArrayObject *)Py_NewRef(seq);
it->it_seq = (PyByteArrayObject *)seq;
_PyObject_GC_TRACK(it); _PyObject_GC_TRACK(it);
return (PyObject *)it; return (PyObject *)it;
} }

View File

@ -45,8 +45,7 @@ PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname
PyThreadState *tstate = _PyThreadState_GET(); PyThreadState *tstate = _PyThreadState_GET();
PyCodeObject *code_obj = (PyCodeObject *)code; PyCodeObject *code_obj = (PyCodeObject *)Py_NewRef(code);
Py_INCREF(code_obj);
PyObject *name = code_obj->co_name; PyObject *name = code_obj->co_name;
assert(name != NULL); assert(name != NULL);

View File

@ -1601,8 +1601,7 @@ set_isub(PySetObject *so, PyObject *other)
Py_RETURN_NOTIMPLEMENTED; Py_RETURN_NOTIMPLEMENTED;
if (set_difference_update_internal(so, other)) if (set_difference_update_internal(so, other))
return NULL; return NULL;
Py_INCREF(so); return Py_NewRef(so);
return (PyObject *)so;
} }
static PyObject * static PyObject *
@ -1639,8 +1638,7 @@ set_symmetric_difference_update(PySetObject *so, PyObject *other)
} }
if (PyAnySet_Check(other)) { if (PyAnySet_Check(other)) {
Py_INCREF(other); otherset = (PySetObject *)Py_NewRef(other);
otherset = (PySetObject *)other;
} else { } else {
otherset = (PySetObject *)make_new_set_basetype(Py_TYPE(so), other); otherset = (PySetObject *)make_new_set_basetype(Py_TYPE(so), other);
if (otherset == NULL) if (otherset == NULL)
@ -1715,8 +1713,7 @@ set_ixor(PySetObject *so, PyObject *other)
if (result == NULL) if (result == NULL)
return NULL; return NULL;
Py_DECREF(result); Py_DECREF(result);
Py_INCREF(so); return Py_NewRef(so);
return (PyObject *)so;
} }
static PyObject * static PyObject *