@@ -588,8 +588,7 @@ set_merge(PySetObject *so, PyObject *otherset)
588588 key = other_entry -> key ;
589589 if (key != NULL ) {
590590 assert (so_entry -> key == NULL );
591- Py_INCREF (key );
592- so_entry -> key = key ;
591+ so_entry -> key = Py_NewRef (key );
593592 so_entry -> hash = other_entry -> hash ;
594593 }
595594 }
@@ -607,8 +606,8 @@ set_merge(PySetObject *so, PyObject *otherset)
607606 for (i = other -> mask + 1 ; i > 0 ; i -- , other_entry ++ ) {
608607 key = other_entry -> key ;
609608 if (key != NULL && key != dummy ) {
610- Py_INCREF ( key );
611- set_insert_clean ( newtable , newmask , key , other_entry -> hash );
609+ set_insert_clean ( newtable , newmask , Py_NewRef ( key ),
610+ other_entry -> hash );
612611 }
613612 }
614613 return 0 ;
@@ -820,8 +819,7 @@ static PyObject *setiter_iternext(setiterobject *si)
820819 goto fail ;
821820 si -> len -- ;
822821 key = entry [i ].key ;
823- Py_INCREF (key );
824- return key ;
822+ return Py_NewRef (key );
825823
826824fail :
827825 si -> si_set = NULL ;
@@ -868,8 +866,7 @@ set_iter(PySetObject *so)
868866 setiterobject * si = PyObject_GC_New (setiterobject , & PySetIter_Type );
869867 if (si == NULL )
870868 return NULL ;
871- Py_INCREF (so );
872- si -> si_set = so ;
869+ si -> si_set = (PySetObject * )Py_NewRef (so );
873870 si -> si_used = so -> used ;
874871 si -> si_pos = 0 ;
875872 si -> len = so -> used ;
@@ -997,8 +994,7 @@ make_new_frozenset(PyTypeObject *type, PyObject *iterable)
997994
998995 if (iterable != NULL && PyFrozenSet_CheckExact (iterable )) {
999996 /* frozenset(f) is idempotent */
1000- Py_INCREF (iterable );
1001- return iterable ;
997+ return Py_NewRef (iterable );
1002998 }
1003999 return make_new_set (type , iterable );
10041000}
@@ -1100,8 +1096,7 @@ static PyObject *
11001096frozenset_copy (PySetObject * so , PyObject * Py_UNUSED (ignored ))
11011097{
11021098 if (PyFrozenSet_CheckExact (so )) {
1103- Py_INCREF (so );
1104- return (PyObject * )so ;
1099+ return Py_NewRef (so );
11051100 }
11061101 return set_copy (so , NULL );
11071102}
@@ -1173,8 +1168,7 @@ set_ior(PySetObject *so, PyObject *other)
11731168
11741169 if (set_update_internal (so , other ))
11751170 return NULL ;
1176- Py_INCREF (so );
1177- return (PyObject * )so ;
1171+ return Py_NewRef (so );
11781172}
11791173
11801174static PyObject *
@@ -1264,12 +1258,11 @@ static PyObject *
12641258set_intersection_multi (PySetObject * so , PyObject * args )
12651259{
12661260 Py_ssize_t i ;
1267- PyObject * result = (PyObject * )so ;
12681261
12691262 if (PyTuple_GET_SIZE (args ) == 0 )
12701263 return set_copy (so , NULL );
12711264
1272- Py_INCREF (so );
1265+ PyObject * result = Py_NewRef (so );
12731266 for (i = 0 ; i < PyTuple_GET_SIZE (args ) ; i ++ ) {
12741267 PyObject * other = PyTuple_GET_ITEM (args , i );
12751268 PyObject * newresult = set_intersection ((PySetObject * )result , other );
@@ -1336,8 +1329,7 @@ set_iand(PySetObject *so, PyObject *other)
13361329 if (result == NULL )
13371330 return NULL ;
13381331 Py_DECREF (result );
1339- Py_INCREF (so );
1340- return (PyObject * )so ;
1332+ return Py_NewRef (so );
13411333}
13421334
13431335static PyObject *
0 commit comments