diff options
author | Erlend Egeberg Aasland <erlend.aasland@innova.no> | 2020-12-27 11:05:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-27 11:05:33 (GMT) |
commit | bf64d9064ab641b1ef9a0c4bda097ebf1204faf4 (patch) | |
tree | 087d470d6d608bedff06e712fa7b85ffb59a4359 /Modules/_sqlite/statement.c | |
parent | 3ccef1ca474592e191a00e131dfbaf777db271e9 (diff) | |
download | cpython-bf64d9064ab641b1ef9a0c4bda097ebf1204faf4.zip cpython-bf64d9064ab641b1ef9a0c4bda097ebf1204faf4.tar.gz cpython-bf64d9064ab641b1ef9a0c4bda097ebf1204faf4.tar.bz2 |
bpo-1635741: sqlite3 uses Py_NewRef/Py_XNewRef (GH-23170)
Diffstat (limited to 'Modules/_sqlite/statement.c')
-rw-r--r-- | Modules/_sqlite/statement.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 4682d28..b62de58 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -72,8 +72,7 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con } self->in_weakreflist = NULL; - Py_INCREF(sql); - self->sql = sql; + self->sql = Py_NewRef(sql); /* Determine if the statement is a DML statement. SELECT is the only exception. See #9924. */ @@ -240,11 +239,11 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para } for (i = 0; i < num_params; i++) { if (PyTuple_CheckExact(parameters)) { - current_param = PyTuple_GET_ITEM(parameters, i); - Py_INCREF(current_param); + PyObject *item = PyTuple_GET_ITEM(parameters, i); + current_param = Py_NewRef(item); } else if (PyList_CheckExact(parameters)) { - current_param = PyList_GetItem(parameters, i); - Py_XINCREF(current_param); + PyObject *item = PyList_GetItem(parameters, i); + current_param = Py_XNewRef(item); } else { current_param = PySequence_GetItem(parameters, i); } @@ -290,8 +289,8 @@ void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject* para return; } if (PyDict_CheckExact(parameters)) { - current_param = PyDict_GetItemWithError(parameters, binding_name_obj); - Py_XINCREF(current_param); + PyObject *item = PyDict_GetItemWithError(parameters, binding_name_obj); + current_param = Py_XNewRef(item); } else { current_param = PyObject_GetItem(parameters, binding_name_obj); } |