bpo-1635741: sqlite3 uses Py_NewRef/Py_XNewRef (GH-23170) · python/cpython@bf64d90

@@ -271,8 +271,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)

271271

nbytes = sqlite3_column_bytes(self->statement->st, i);

272272

val_str = (const char*)sqlite3_column_blob(self->statement->st, i);

273273

if (!val_str) {

274-

Py_INCREF(Py_None);

275-

converted = Py_None;

274+

converted = Py_NewRef(Py_None);

276275

} else {

277276

item = PyBytes_FromStringAndSize(val_str, nbytes);

278277

if (!item)

@@ -285,8 +284,7 @@ _pysqlite_fetch_one_row(pysqlite_Cursor* self)

285284

coltype = sqlite3_column_type(self->statement->st, i);

286285

Py_END_ALLOW_THREADS

287286

if (coltype == SQLITE_NULL) {

288-

Py_INCREF(Py_None);

289-

converted = Py_None;

287+

converted = Py_NewRef(Py_None);

290288

} else if (coltype == SQLITE_INTEGER) {

291289

converted = PyLong_FromLongLong(sqlite3_column_int64(self->statement->st, i));

292290

} else if (coltype == SQLITE_FLOAT) {

@@ -402,8 +400,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)

402400403401

if (PyIter_Check(second_argument)) {

404402

/* iterator */

405-

Py_INCREF(second_argument);

406-

parameters_iter = second_argument;

403+

parameters_iter = Py_NewRef(second_argument);

407404

} else {

408405

/* sequence */

409406

parameters_iter = PyObject_GetIter(second_argument);

@@ -456,8 +453,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)

456453

if (!func_args) {

457454

goto error;

458455

}

459-

Py_INCREF(operation);

460-

if (PyTuple_SetItem(func_args, 0, operation) != 0) {

456+

if (PyTuple_SetItem(func_args, 0, Py_NewRef(operation)) != 0) {

461457

goto error;

462458

}

463459

@@ -555,12 +551,12 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)

555551

goto error;

556552

}

557553

PyTuple_SetItem(descriptor, 0, column_name);

558-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 1, Py_None);

559-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 2, Py_None);

560-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 3, Py_None);

561-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 4, Py_None);

562-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 5, Py_None);

563-

Py_INCREF(Py_None); PyTuple_SetItem(descriptor, 6, Py_None);

554+

PyTuple_SetItem(descriptor, 1, Py_NewRef(Py_None));

555+

PyTuple_SetItem(descriptor, 2, Py_NewRef(Py_None));

556+

PyTuple_SetItem(descriptor, 3, Py_NewRef(Py_None));

557+

PyTuple_SetItem(descriptor, 4, Py_NewRef(Py_None));

558+

PyTuple_SetItem(descriptor, 5, Py_NewRef(Py_None));

559+

PyTuple_SetItem(descriptor, 6, Py_NewRef(Py_None));

564560

PyTuple_SetItem(self->description, i, descriptor);

565561

}

566562

}

@@ -610,8 +606,7 @@ _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)

610606

self->rowcount = -1L;

611607

return NULL;

612608

} else {

613-

Py_INCREF(self);

614-

return (PyObject*)self;

609+

return Py_NewRef((PyObject *)self);

615610

}

616611

}

617612

@@ -706,8 +701,7 @@ pysqlite_cursor_executescript(pysqlite_Cursor* self, PyObject* args)

706701

if (PyErr_Occurred()) {

707702

return NULL;

708703

} else {

709-

Py_INCREF(self);

710-

return (PyObject*)self;

704+

return Py_NewRef((PyObject *)self);

711705

}

712706

}

713707