pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/3817607b8a345851e4fa436747a346890ced33f1

faa60c69660fa.css" /> gh-99300: Use Py_NewRef() in Modules/ directory (#99466) · python/cpython@3817607 · GitHub
Skip to content

Commit 3817607

Browse files
authored
gh-99300: Use Py_NewRef() in Modules/ directory (#99466)
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in test C files of the Modules/ directory.
1 parent db11568 commit 3817607

10 files changed

Lines changed: 106 additions & 214 deletions

File tree

Modules/_abc.c

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -524,8 +524,7 @@ _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)
524524
}
525525
int result = PyObject_IsSubclass(subclass, self);
526526
if (result > 0) {
527-
Py_INCREF(subclass);
528-
return subclass; /* Already a subclass. */
527+
return Py_NewRef(subclass); /* Already a subclass. */
529528
}
530529
if (result < 0) {
531530
return NULL;
@@ -561,8 +560,7 @@ _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)
561560
set_collection_flag_recursive((PyTypeObject *)subclass, collection_flag);
562561
}
563562
}
564-
Py_INCREF(subclass);
565-
return subclass;
563+
return Py_NewRef(subclass);
566564
}
567565

568566

@@ -598,8 +596,7 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
598596
goto end;
599597
}
600598
if (incache > 0) {
601-
result = Py_True;
602-
Py_INCREF(result);
599+
result = Py_NewRef(Py_True);
603600
goto end;
604601
}
605602
subtype = (PyObject *)Py_TYPE(instance);
@@ -610,8 +607,7 @@ _abc__abc_instancecheck_impl(PyObject *module, PyObject *self,
610607
goto end;
611608
}
612609
if (incache > 0) {
613-
result = Py_False;
614-
Py_INCREF(result);
610+
result = Py_NewRef(Py_False);
615611
goto end;
616612
}
617613
}
@@ -802,8 +798,7 @@ _abc__abc_subclasscheck_impl(PyObject *module, PyObject *self,
802798
end:
803799
Py_DECREF(impl);
804800
Py_XDECREF(subclasses);
805-
Py_XINCREF(result);
806-
return result;
801+
return Py_XNewRef(result);
807802
}
808803

809804

@@ -842,8 +837,7 @@ subclasscheck_check_registry(_abc_data *impl, PyObject *subclass,
842837
Py_ssize_t i = 0;
843838

844839
while (_PySet_NextEntry(impl->_abc_registry, &pos, &key, &hash)) {
845-
Py_INCREF(key);
846-
copy[i++] = key;
840+
copy[i++] = Py_NewRef(key);
847841
}
848842
assert(i == registry_size);
849843

Modules/_collectionsmodule.c

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,7 @@ deque_append_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
299299
static PyObject *
300300
deque_append(dequeobject *deque, PyObject *item)
301301
{
302-
Py_INCREF(item);
303-
if (deque_append_internal(deque, item, deque->maxlen) < 0)
302+
if (deque_append_internal(deque, Py_NewRef(item), deque->maxlen) < 0)
304303
return NULL;
305304
Py_RETURN_NONE;
306305
}
@@ -336,8 +335,7 @@ deque_appendleft_internal(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
336335
static PyObject *
337336
deque_appendleft(dequeobject *deque, PyObject *item)
338337
{
339-
Py_INCREF(item);
340-
if (deque_appendleft_internal(deque, item, deque->maxlen) < 0)
338+
if (deque_appendleft_internal(deque, Py_NewRef(item), deque->maxlen) < 0)
341339
return NULL;
342340
Py_RETURN_NONE;
343341
}
@@ -655,14 +653,12 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
655653

656654
size = Py_SIZE(deque);
657655
if (size == 0 || n == 1) {
658-
Py_INCREF(deque);
659-
return (PyObject *)deque;
656+
return Py_NewRef(deque);
660657
}
661658

662659
if (n <= 0) {
663660
deque_clear(deque);
664-
Py_INCREF(deque);
665-
return (PyObject *)deque;
661+
return Py_NewRef(deque);
666662
}
667663

668664
if (size == 1) {
@@ -693,13 +689,11 @@ deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)
693689
i += m;
694690
while (m--) {
695691
deque->rightindex++;
696-
Py_INCREF(item);
697-
deque->rightblock->data[deque->rightindex] = item;
692+
deque->rightblock->data[deque->rightindex] = Py_NewRef(item);
698693
}
699694
}
700695
Py_SET_SIZE(deque, Py_SIZE(deque) + i);
701-
Py_INCREF(deque);
702-
return (PyObject *)deque;
696+
return Py_NewRef(deque);
703697
}
704698

705699
if ((size_t)size > PY_SSIZE_T_MAX / (size_t)n) {
@@ -972,8 +966,7 @@ deque_count(dequeobject *deque, PyObject *v)
972966

973967
while (--n >= 0) {
974968
CHECK_NOT_END(b);
975-
item = b->data[index];
976-
Py_INCREF(item);
969+
item = Py_NewRef(b->data[index]);
977970
cmp = PyObject_RichCompareBool(item, v, Py_EQ);
978971
Py_DECREF(item);
979972
if (cmp < 0)
@@ -1011,8 +1004,7 @@ deque_contains(dequeobject *deque, PyObject *v)
10111004

10121005
while (--n >= 0) {
10131006
CHECK_NOT_END(b);
1014-
item = b->data[index];
1015-
Py_INCREF(item);
1007+
item = Py_NewRef(b->data[index]);
10161008
cmp = PyObject_RichCompareBool(item, v, Py_EQ);
10171009
Py_DECREF(item);
10181010
if (cmp) {
@@ -1201,8 +1193,7 @@ deque_item(dequeobject *deque, Py_ssize_t i)
12011193
}
12021194
}
12031195
item = b->data[i];
1204-
Py_INCREF(item);
1205-
return item;
1196+
return Py_NewRef(item);
12061197
}
12071198

12081199
static int
@@ -1231,8 +1222,7 @@ deque_remove(dequeobject *deque, PyObject *value)
12311222
int cmp, rv;
12321223

12331224
for (i = 0 ; i < n; i++) {
1234-
item = b->data[index];
1235-
Py_INCREF(item);
1225+
item = Py_NewRef(b->data[index]);
12361226
cmp = PyObject_RichCompareBool(item, value, Py_EQ);
12371227
Py_DECREF(item);
12381228
if (cmp < 0) {
@@ -1292,9 +1282,8 @@ deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
12921282
while (--n >= 0)
12931283
b = b->leftlink;
12941284
}
1295-
Py_INCREF(v);
12961285
old_value = b->data[i];
1297-
b->data[i] = v;
1286+
b->data[i] = Py_NewRef(v);
12981287
Py_DECREF(old_value);
12991288
return 0;
13001289
}
@@ -1686,8 +1675,7 @@ deque_iter(dequeobject *deque)
16861675
return NULL;
16871676
it->b = deque->leftblock;
16881677
it->index = deque->leftindex;
1689-
Py_INCREF(deque);
1690-
it->deque = deque;
1678+
it->deque = (dequeobject*)Py_NewRef(deque);
16911679
it->state = deque->state;
16921680
it->counter = Py_SIZE(deque);
16931681
PyObject_GC_Track(it);
@@ -1734,8 +1722,7 @@ dequeiter_next(dequeiterobject *it)
17341722
it->b = it->b->rightlink;
17351723
it->index = 0;
17361724
}
1737-
Py_INCREF(item);
1738-
return item;
1725+
return Py_NewRef(item);
17391726
}
17401727

17411728
static PyObject *
@@ -1844,8 +1831,7 @@ deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored))
18441831
return NULL;
18451832
it->b = deque->rightblock;
18461833
it->index = deque->rightindex;
1847-
Py_INCREF(deque);
1848-
it->deque = deque;
1834+
it->deque = (dequeobject*)Py_NewRef(deque);
18491835
it->state = deque->state;
18501836
it->counter = Py_SIZE(deque);
18511837
PyObject_GC_Track(it);
@@ -1876,8 +1862,7 @@ dequereviter_next(dequeiterobject *it)
18761862
it->b = it->b->leftlink;
18771863
it->index = BLOCKLEN - 1;
18781864
}
1879-
Py_INCREF(item);
1880-
return item;
1865+
return Py_NewRef(item);
18811866
}
18821867

18831868
static PyObject *
@@ -2203,8 +2188,7 @@ defdict_init(PyObject *self, PyObject *args, PyObject *kwds)
22032188
}
22042189
if (newargs == NULL)
22052190
return -1;
2206-
Py_XINCREF(newdefault);
2207-
dd->default_factory = newdefault;
2191+
dd->default_factory = Py_XNewRef(newdefault);
22082192
result = PyDict_Type.tp_init(self, newargs, kwds);
22092193
Py_DECREF(newargs);
22102194
Py_XDECREF(olddefault);
@@ -2414,8 +2398,7 @@ tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc)
24142398
return NULL;
24152399
}
24162400
self->index = index;
2417-
Py_INCREF(doc);
2418-
self->doc = doc;
2401+
self->doc = Py_NewRef(doc);
24192402
return (PyObject *)self;
24202403
}
24212404

@@ -2426,13 +2409,11 @@ tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)
24262409
PyObject *result;
24272410

24282411
if (obj == NULL) {
2429-
Py_INCREF(self);
2430-
return self;
2412+
return Py_NewRef(self);
24312413
}
24322414
if (!PyTuple_Check(obj)) {
24332415
if (obj == Py_None) {
2434-
Py_INCREF(self);
2435-
return self;
2416+
return Py_NewRef(self);
24362417
}
24372418
PyErr_Format(PyExc_TypeError,
24382419
"descriptor for index '%zd' for tuple subclasses "
@@ -2448,8 +2429,7 @@ tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)
24482429
}
24492430

24502431
result = PyTuple_GET_ITEM(obj, index);
2451-
Py_INCREF(result);
2452-
return result;
2432+
return Py_NewRef(result);
24532433
}
24542434

24552435
static int

Modules/_csv.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,7 @@ get_char_or_None(Py_UCS4 c)
176176
static PyObject *
177177
Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))
178178
{
179-
Py_XINCREF(self->lineterminator);
180-
return self->lineterminator;
179+
return Py_XNewRef(self->lineterminator);
181180
}
182181

183182
static PyObject *
@@ -316,8 +315,7 @@ _set_str(const char *name, PyObject **target, PyObject *src, const char *dflt)
316315
else {
317316
if (PyUnicode_READY(src) == -1)
318317
return -1;
319-
Py_INCREF(src);
320-
Py_XSETREF(*target, src);
318+
Py_XSETREF(*target, Py_NewRef(src));
321319
}
322320
}
323321
return 0;
@@ -514,8 +512,7 @@ dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
514512
goto err;
515513
}
516514

517-
ret = (PyObject *)self;
518-
Py_INCREF(self);
515+
ret = Py_NewRef(self);
519516
err:
520517
Py_CLEAR(self);
521518
Py_CLEAR(dialect);

Modules/_curses_panel.c

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,7 @@ PyCursesPanel_New(_curses_panel_state *state, PANEL *pan,
261261
Py_DECREF(po);
262262
return NULL;
263263
}
264-
po->wo = wo;
265-
Py_INCREF(wo);
264+
po->wo = (PyCursesWindowObject*)Py_NewRef(wo);
266265
return (PyObject *)po;
267266
}
268267

@@ -313,8 +312,7 @@ _curses_panel_panel_above_impl(PyCursesPanelObject *self)
313312
"panel_above: can't find Panel Object");
314313
return NULL;
315314
}
316-
Py_INCREF(po);
317-
return (PyObject *)po;
315+
return Py_NewRef(po);
318316
}
319317

320318
/* panel_below(NULL) returns the top panel in the stack. To get
@@ -344,8 +342,7 @@ _curses_panel_panel_below_impl(PyCursesPanelObject *self)
344342
"panel_below: can't find Panel Object");
345343
return NULL;
346344
}
347-
Py_INCREF(po);
348-
return (PyObject *)po;
345+
return Py_NewRef(po);
349346
}
350347

351348
/*[clinic input]
@@ -394,8 +391,7 @@ static PyObject *
394391
_curses_panel_panel_window_impl(PyCursesPanelObject *self)
395392
/*[clinic end generated code: output=5f05940d4106b4cb input=6067353d2c307901]*/
396393
{
397-
Py_INCREF(self->wo);
398-
return (PyObject *)self->wo;
394+
return Py_NewRef(self->wo);
399395
}
400396

401397
/*[clinic input]
@@ -428,8 +424,7 @@ _curses_panel_panel_replace_impl(PyCursesPanelObject *self,
428424
PyErr_SetString(state->PyCursesError, "replace_panel() returned ERR");
429425
return NULL;
430426
}
431-
Py_INCREF(win);
432-
Py_SETREF(po->wo, win);
427+
Py_SETREF(po->wo, Py_NewRef(win));
433428
Py_RETURN_NONE;
434429
}
435430

@@ -486,8 +481,7 @@ _curses_panel_panel_userptr_impl(PyCursesPanelObject *self,
486481
return NULL;
487482
}
488483

489-
Py_INCREF(obj);
490-
return obj;
484+
return Py_NewRef(obj);
491485
}
492486

493487

@@ -555,8 +549,7 @@ _curses_panel_bottom_panel_impl(PyObject *module)
555549
"panel_above: can't find Panel Object");
556550
return NULL;
557551
}
558-
Py_INCREF(po);
559-
return (PyObject *)po;
552+
return Py_NewRef(po);
560553
}
561554

562555
/*[clinic input]
@@ -614,8 +607,7 @@ _curses_panel_top_panel_impl(PyObject *module)
614607
"panel_below: can't find Panel Object");
615608
return NULL;
616609
}
617-
Py_INCREF(po);
618-
return (PyObject *)po;
610+
return Py_NewRef(po);
619611
}
620612

621613
/*[clinic input]
@@ -670,8 +662,7 @@ _curses_panel_exec(PyObject *mod)
670662
state->PyCursesError = PyErr_NewException(
671663
"_curses_panel.error", NULL, NULL);
672664

673-
Py_INCREF(state->PyCursesError);
674-
if (PyModule_AddObject(mod, "error", state->PyCursesError) < 0) {
665+
if (PyModule_AddObject(mod, "error", Py_NewRef(state->PyCursesError)) < 0) {
675666
Py_DECREF(state->PyCursesError);
676667
return -1;
677668
}

Modules/_cursesmodule.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,7 @@ PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj,
389389
#endif
390390
}
391391
else if (PyBytes_Check(obj)) {
392-
Py_INCREF(obj);
393-
*bytes = obj;
392+
*bytes = Py_NewRef(obj);
394393
/* check for embedded null bytes */
395394
if (PyBytes_AsStringAndSize(*bytes, &str, NULL) < 0) {
396395
Py_DECREF(obj);

Modules/_dbmmodule.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,7 @@ _dbm_dbm_get_impl(dbmobject *self, PyTypeObject *cls, const char *key,
358358
return PyBytes_FromStringAndSize(val.dptr, val.dsize);
359359
}
360360

361-
Py_INCREF(default_value);
362-
return default_value;
361+
return Py_NewRef(default_value);
363362
}
364363

365364
/*[clinic input]
@@ -419,8 +418,7 @@ _dbm_dbm_setdefault_impl(dbmobject *self, PyTypeObject *cls, const char *key,
419418
static PyObject *
420419
dbm__enter__(PyObject *self, PyObject *args)
421420
{
422-
Py_INCREF(self);
423-
return self;
421+
return Py_NewRef(self);
424422
}
425423

426424
static PyObject *

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy