Skip to content

Commit

Permalink
gh-99300: Use Py_NewRef() in Doc/ directory (#99480)
Browse files Browse the repository at this point in the history
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and
Py_XNewRef() in test C files of the Doc/ directory.

Replace PyModule_AddObject() with PyModule_AddObjectRef() to simplify
reference counting.
  • Loading branch information
vstinner authored Nov 14, 2022
1 parent 65dd745 commit 1089bdc
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 33 deletions.
10 changes: 3 additions & 7 deletions Doc/includes/custom2.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,12 @@ Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)

if (first) {
tmp = self->first;
Py_INCREF(first);
self->first = first;
self->first = Py_NewRef(first);
Py_XDECREF(tmp);
}
if (last) {
tmp = self->last;
Py_INCREF(last);
self->last = last;
self->last = Py_NewRef(last);
Py_XDECREF(tmp);
}
return 0;
Expand Down Expand Up @@ -127,9 +125,7 @@ PyInit_custom2(void)
if (m == NULL)
return NULL;

Py_INCREF(&CustomType);
if (PyModule_AddObject(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(&CustomType);
if (PyModule_AddObjectRef(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(m);
return NULL;
}
Expand Down
22 changes: 7 additions & 15 deletions Doc/includes/custom3.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,12 @@ Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)

if (first) {
tmp = self->first;
Py_INCREF(first);
self->first = first;
self->first = Py_NewRef(first);
Py_DECREF(tmp);
}
if (last) {
tmp = self->last;
Py_INCREF(last);
self->last = last;
self->last = Py_NewRef(last);
Py_DECREF(tmp);
}
return 0;
Expand All @@ -73,8 +71,7 @@ static PyMemberDef Custom_members[] = {
static PyObject *
Custom_getfirst(CustomObject *self, void *closure)
{
Py_INCREF(self->first);
return self->first;
return Py_NewRef(self->first);
}

static int
Expand All @@ -91,17 +88,15 @@ Custom_setfirst(CustomObject *self, PyObject *value, void *closure)
return -1;
}
tmp = self->first;
Py_INCREF(value);
self->first = value;
self->first = Py_NewRef(value);
Py_DECREF(tmp);
return 0;
}

static PyObject *
Custom_getlast(CustomObject *self, void *closure)
{
Py_INCREF(self->last);
return self->last;
return Py_NewRef(self->last);
}

static int
Expand All @@ -118,8 +113,7 @@ Custom_setlast(CustomObject *self, PyObject *value, void *closure)
return -1;
}
tmp = self->last;
Py_INCREF(value);
self->last = value;
self->last = Py_NewRef(value);
Py_DECREF(tmp);
return 0;
}
Expand Down Expand Up @@ -178,9 +172,7 @@ PyInit_custom3(void)
if (m == NULL)
return NULL;

Py_INCREF(&CustomType);
if (PyModule_AddObject(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(&CustomType);
if (PyModule_AddObjectRef(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(m);
return NULL;
}
Expand Down
16 changes: 5 additions & 11 deletions Doc/includes/custom4.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,12 @@ Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)

if (first) {
tmp = self->first;
Py_INCREF(first);
self->first = first;
self->first = Py_NewRef(first);
Py_DECREF(tmp);
}
if (last) {
tmp = self->last;
Py_INCREF(last);
self->last = last;
self->last = Py_NewRef(last);
Py_DECREF(tmp);
}
return 0;
Expand All @@ -89,8 +87,7 @@ static PyMemberDef Custom_members[] = {
static PyObject *
Custom_getfirst(CustomObject *self, void *closure)
{
Py_INCREF(self->first);
return self->first;
return Py_NewRef(self->first);
}

static int
Expand All @@ -114,8 +111,7 @@ Custom_setfirst(CustomObject *self, PyObject *value, void *closure)
static PyObject *
Custom_getlast(CustomObject *self, void *closure)
{
Py_INCREF(self->last);
return self->last;
return Py_NewRef(self->last);
}

static int
Expand Down Expand Up @@ -192,9 +188,7 @@ PyInit_custom4(void)
if (m == NULL)
return NULL;

Py_INCREF(&CustomType);
if (PyModule_AddObject(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(&CustomType);
if (PyModule_AddObjectRef(m, "Custom", (PyObject *) &CustomType) < 0) {
Py_DECREF(m);
return NULL;
}
Expand Down

0 comments on commit 1089bdc

Please sign in to comment.