@@ -200,8 +200,7 @@ get_future_loop(PyObject *fut)
200200
201201 if (Future_CheckExact (fut ) || Task_CheckExact (fut )) {
202202 PyObject * loop = ((FutureObj * )fut )-> fut_loop ;
203- Py_INCREF (loop );
204- return loop ;
203+ return Py_NewRef (loop );
205204 }
206205
207206 if (_PyObject_LookupAttr (fut , & _Py_ID (get_loop ), & getloop ) < 0 ) {
@@ -265,8 +264,7 @@ get_running_loop(PyObject **loop)
265264 }
266265#endif
267266
268- Py_INCREF (running_loop );
269- * loop = running_loop ;
267+ * loop = Py_NewRef (running_loop );
270268 return 0 ;
271269
272270not_found :
@@ -541,8 +539,7 @@ future_set_result(FutureObj *fut, PyObject *res)
541539 }
542540
543541 assert (!fut -> fut_result );
544- Py_INCREF (res );
545- fut -> fut_result = res ;
542+ fut -> fut_result = Py_NewRef (res );
546543 fut -> fut_state = STATE_FINISHED ;
547544
548545 if (future_schedule_callbacks (fut ) == -1 ) {
@@ -573,8 +570,7 @@ future_set_exception(FutureObj *fut, PyObject *exc)
573570 }
574571 }
575572 else {
576- exc_val = exc ;
577- Py_INCREF (exc_val );
573+ exc_val = Py_NewRef (exc );
578574 }
579575 if (!PyExceptionInstance_Check (exc_val )) {
580576 Py_DECREF (exc_val );
@@ -655,14 +651,12 @@ future_get_result(FutureObj *fut, PyObject **result)
655651 if (PyException_SetTraceback (fut -> fut_exception , tb ) < 0 ) {
656652 return -1 ;
657653 }
658- Py_INCREF (fut -> fut_exception );
659- * result = fut -> fut_exception ;
654+ * result = Py_NewRef (fut -> fut_exception );
660655 Py_CLEAR (fut -> fut_exception_tb );
661656 return 1 ;
662657 }
663658
664- Py_INCREF (fut -> fut_result );
665- * result = fut -> fut_result ;
659+ * result = Py_NewRef (fut -> fut_result );
666660 return 0 ;
667661}
668662
@@ -704,10 +698,8 @@ future_add_done_callback(FutureObj *fut, PyObject *arg, PyObject *ctx)
704698 */
705699
706700 if (fut -> fut_callbacks == NULL && fut -> fut_callback0 == NULL ) {
707- Py_INCREF (arg );
708- fut -> fut_callback0 = arg ;
709- Py_INCREF (ctx );
710- fut -> fut_context0 = ctx ;
701+ fut -> fut_callback0 = Py_NewRef (arg );
702+ fut -> fut_context0 = Py_NewRef (ctx );
711703 }
712704 else {
713705 PyObject * tup = PyTuple_New (2 );
@@ -896,8 +888,7 @@ _asyncio_Future_exception_impl(FutureObj *self)
896888
897889 if (self -> fut_exception != NULL ) {
898890 self -> fut_log_tb = 0 ;
899- Py_INCREF (self -> fut_exception );
900- return self -> fut_exception ;
891+ return Py_NewRef (self -> fut_exception );
901892 }
902893
903894 Py_RETURN_NONE ;
@@ -1158,8 +1149,7 @@ _asyncio_Future_get_loop_impl(FutureObj *self)
11581149/*[clinic end generated code: output=119b6ea0c9816c3f input=cba48c2136c79d1f]*/
11591150{
11601151 ENSURE_FUTURE_ALIVE (self )
1161- Py_INCREF (self -> fut_loop );
1162- return self -> fut_loop ;
1152+ return Py_NewRef (self -> fut_loop );
11631153}
11641154
11651155static PyObject *
@@ -1230,8 +1220,7 @@ FutureObj_get_loop(FutureObj *fut, void *Py_UNUSED(ignored))
12301220 if (!future_is_alive (fut )) {
12311221 Py_RETURN_NONE ;
12321222 }
1233- Py_INCREF (fut -> fut_loop );
1234- return fut -> fut_loop ;
1223+ return Py_NewRef (fut -> fut_loop );
12351224}
12361225
12371226static PyObject *
@@ -1246,8 +1235,7 @@ FutureObj_get_callbacks(FutureObj *fut, void *Py_UNUSED(ignored))
12461235 Py_RETURN_NONE ;
12471236 }
12481237
1249- Py_INCREF (fut -> fut_callbacks );
1250- return fut -> fut_callbacks ;
1238+ return Py_NewRef (fut -> fut_callbacks );
12511239 }
12521240
12531241 Py_ssize_t len = 1 ;
@@ -1293,8 +1281,7 @@ FutureObj_get_result(FutureObj *fut, void *Py_UNUSED(ignored))
12931281 if (fut -> fut_result == NULL) {
12941282 Py_RETURN_NONE ;
12951283 }
1296- Py_INCREF (fut -> fut_result );
1297- return fut -> fut_result ;
1284+ return Py_NewRef (fut -> fut_result );
12981285}
12991286
13001287static PyObject *
@@ -1304,8 +1291,7 @@ FutureObj_get_exception(FutureObj *fut, void *Py_UNUSED(ignored))
13041291 if (fut -> fut_exception == NULL) {
13051292 Py_RETURN_NONE ;
13061293 }
1307- Py_INCREF (fut -> fut_exception );
1308- return fut -> fut_exception ;
1294+ return Py_NewRef (fut -> fut_exception );
13091295}
13101296
13111297static PyObject *
@@ -1314,8 +1300,7 @@ FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))
13141300 if (!future_is_alive (fut ) || fut -> fut_source_tb == NULL ) {
13151301 Py_RETURN_NONE ;
13161302 }
1317- Py_INCREF (fut -> fut_source_tb );
1318- return fut -> fut_source_tb ;
1303+ return Py_NewRef (fut -> fut_source_tb );
13191304}
13201305
13211306static PyObject *
@@ -1324,8 +1309,7 @@ FutureObj_get_cancel_message(FutureObj *fut, void *Py_UNUSED(ignored))
13241309 if (fut -> fut_cancel_msg == NULL ) {
13251310 Py_RETURN_NONE ;
13261311 }
1327- Py_INCREF (fut -> fut_cancel_msg );
1328- return fut -> fut_cancel_msg ;
1312+ return Py_NewRef (fut -> fut_cancel_msg );
13291313}
13301314
13311315static int
@@ -1361,8 +1345,7 @@ FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
13611345 default :
13621346 assert (0 );
13631347 }
1364- Py_XINCREF (ret );
1365- return ret ;
1348+ return Py_XNewRef (ret );
13661349}
13671350
13681351static PyObject *
@@ -1587,8 +1570,7 @@ FutureIter_am_send(futureiterobject *it,
15871570 if (fut -> fut_state == STATE_PENDING ) {
15881571 if (!fut -> fut_blocking ) {
15891572 fut -> fut_blocking = 1 ;
1590- Py_INCREF (fut );
1591- * result = (PyObject * )fut ;
1573+ * result = Py_NewRef (fut );
15921574 return PYGEN_NEXT ;
15931575 }
15941576 PyErr_SetString (PyExc_RuntimeError ,
@@ -1873,11 +1855,8 @@ TaskStepMethWrapper_new(TaskObj *task, PyObject *arg)
18731855 return NULL ;
18741856 }
18751857
1876- Py_INCREF (task );
1877- o -> sw_task = task ;
1878-
1879- Py_XINCREF (arg );
1880- o -> sw_arg = arg ;
1858+ o -> sw_task = (TaskObj * )Py_NewRef (task );
1859+ o -> sw_arg = Py_XNewRef (arg );
18811860
18821861 PyObject_GC_Track (o );
18831862 return (PyObject * ) o ;
@@ -2105,8 +2084,7 @@ static PyObject *
21052084TaskObj_get_coro (TaskObj * task , void * Py_UNUSED (ignored ))
21062085{
21072086 if (task -> task_coro ) {
2108- Py_INCREF (task -> task_coro );
2109- return task -> task_coro ;
2087+ return Py_NewRef (task -> task_coro );
21102088 }
21112089
21122090 Py_RETURN_NONE ;
@@ -2116,8 +2094,7 @@ static PyObject *
21162094TaskObj_get_fut_waiter (TaskObj * task , void * Py_UNUSED (ignored ))
21172095{
21182096 if (task -> task_fut_waiter ) {
2119- Py_INCREF (task -> task_fut_waiter );
2120- return task -> task_fut_waiter ;
2097+ return Py_NewRef (task -> task_fut_waiter );
21212098 }
21222099
21232100 Py_RETURN_NONE ;
@@ -2360,8 +2337,7 @@ static PyObject *
23602337_asyncio_Task_get_coro_impl (TaskObj * self )
23612338/*[clinic end generated code: output=bcac27c8cc6c8073 input=d2e8606c42a7b403]*/
23622339{
2363- Py_INCREF (self -> task_coro );
2364- return self -> task_coro ;
2340+ return Py_NewRef (self -> task_coro );
23652341}
23662342
23672343/*[clinic input]
@@ -2372,8 +2348,7 @@ static PyObject *
23722348_asyncio_Task_get_context_impl (TaskObj * self )
23732349/*[clinic end generated code: output=6996f53d3dc01aef input=87c0b209b8fceeeb]*/
23742350{
2375- Py_INCREF (self -> task_context );
2376- return self -> task_context ;
2351+ return Py_NewRef (self -> task_context );
23772352}
23782353
23792354/*[clinic input]
@@ -2385,8 +2360,7 @@ _asyncio_Task_get_name_impl(TaskObj *self)
23852360/*[clinic end generated code: output=0ecf1570c3b37a8f input=a4a6595d12f4f0f8]*/
23862361{
23872362 if (self -> task_name ) {
2388- Py_INCREF (self -> task_name );
2389- return self -> task_name ;
2363+ return Py_NewRef (self -> task_name );
23902364 }
23912365
23922366 Py_RETURN_NONE ;
@@ -3258,9 +3232,7 @@ new_running_loop_holder(PyObject *loop)
32583232#if defined(HAVE_GETPID ) && !defined(MS_WINDOWS )
32593233 rl -> rl_pid = getpid ();
32603234#endif
3261-
3262- Py_INCREF (loop );
3263- rl -> rl_loop = loop ;
3235+ rl -> rl_loop = Py_NewRef (loop );
32643236
32653237 return rl ;
32663238}
0 commit comments