mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Forward port r64930.
Fix one more case in cursor.c.
This commit is contained in:
parent
dff1834f45
commit
1839bac796
2 changed files with 14 additions and 25 deletions
|
@ -944,19 +944,16 @@ PyObject* pysqlite_connection_call(pysqlite_Connection* self, PyObject* args, Py
|
|||
_pysqlite_seterror(self->db, NULL);
|
||||
}
|
||||
|
||||
Py_DECREF(statement);
|
||||
statement = 0;
|
||||
Py_CLEAR(statement);
|
||||
} else {
|
||||
weakref = PyWeakref_NewRef((PyObject*)statement, NULL);
|
||||
if (!weakref) {
|
||||
Py_DECREF(statement);
|
||||
statement = 0;
|
||||
Py_CLEAR(statement);
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (PyList_Append(self->statements, weakref) != 0) {
|
||||
Py_DECREF(weakref);
|
||||
statement = 0;
|
||||
Py_CLEAR(weakref);
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -980,15 +977,13 @@ PyObject* pysqlite_connection_execute(pysqlite_Connection* self, PyObject* args,
|
|||
|
||||
method = PyObject_GetAttrString(cursor, "execute");
|
||||
if (!method) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
goto error;
|
||||
}
|
||||
|
||||
result = PyObject_CallObject(method, args);
|
||||
if (!result) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
}
|
||||
|
||||
error:
|
||||
|
@ -1011,15 +1006,13 @@ PyObject* pysqlite_connection_executemany(pysqlite_Connection* self, PyObject* a
|
|||
|
||||
method = PyObject_GetAttrString(cursor, "executemany");
|
||||
if (!method) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
goto error;
|
||||
}
|
||||
|
||||
result = PyObject_CallObject(method, args);
|
||||
if (!result) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
}
|
||||
|
||||
error:
|
||||
|
@ -1042,15 +1035,13 @@ PyObject* pysqlite_connection_executescript(pysqlite_Connection* self, PyObject*
|
|||
|
||||
method = PyObject_GetAttrString(cursor, "executescript");
|
||||
if (!method) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
goto error;
|
||||
}
|
||||
|
||||
result = PyObject_CallObject(method, args);
|
||||
if (!result) {
|
||||
Py_DECREF(cursor);
|
||||
cursor = 0;
|
||||
Py_CLEAR(cursor);
|
||||
}
|
||||
|
||||
error:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* cursor.c - the cursor type
|
||||
*
|
||||
* Copyright (C) 2004-2007 Gerhard Häring <gh@ghaering.de>
|
||||
* Copyright (C) 2004-2007 Gerhard Häring <gh@ghaering.de>
|
||||
*
|
||||
* This file is part of pysqlite.
|
||||
*
|
||||
|
@ -529,7 +529,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
|
|||
}
|
||||
rc = pysqlite_statement_create(self->statement, self->connection, operation);
|
||||
if (rc != SQLITE_OK) {
|
||||
self->statement = 0;
|
||||
Py_CLEAR(self->statement);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
@ -602,7 +602,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
|
|||
}
|
||||
rc = pysqlite_statement_create(self->statement, self->connection, operation);
|
||||
if (rc != SQLITE_OK) {
|
||||
self->statement = 0;
|
||||
Py_CLEAR(self->statement);
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
@ -711,8 +711,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
|
|||
self->next_row = _pysqlite_fetch_one_row(self);
|
||||
} else if (rc == SQLITE_DONE && !multiple) {
|
||||
pysqlite_statement_reset(self->statement);
|
||||
Py_DECREF(self->statement);
|
||||
self->statement = 0;
|
||||
Py_CLEAR(self->statement);
|
||||
}
|
||||
|
||||
switch (statement_type) {
|
||||
|
@ -1013,8 +1012,7 @@ PyObject* pysqlite_cursor_close(pysqlite_Cursor* self, PyObject* args)
|
|||
|
||||
if (self->statement) {
|
||||
(void)pysqlite_statement_reset(self->statement);
|
||||
Py_DECREF(self->statement);
|
||||
self->statement = 0;
|
||||
Py_CLEAR(self->statement);
|
||||
}
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue