Skip to content

Commit 1455c51

Browse files
authored
gh-99300: Use Py_NewRef() in Modules/_asynciomodule.c (#99441)
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and Py_XNewRef() in Modules/_asynciomodule.c.
1 parent f0d12ca commit 1455c51

File tree

1 file changed

+26
-54
lines changed

1 file changed

+26
-54
lines changed

Modules/_asynciomodule.c

+26-54
Original file line numberDiff line numberDiff line change
@@ -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

272270
not_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

11651155
static 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

12371226
static 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

13001287
static 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

13111297
static 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

13211306
static 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

13311315
static 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

13681351
static 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 *
21052084
TaskObj_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 *
21162094
TaskObj_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

Comments
 (0)