From ceab6104694c56dc31926af149cbe133988f9574 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 25 Nov 2007 00:45:05 +0000 Subject: [PATCH] #1480: fix refleak in the sqlite module. It came from rev 58682. The reason is that PyString_Concat and PyUnicode_Concat work differently -- the equivalent to PyString_Concat is PyUnicode_Append. --- Modules/_sqlite/connection.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index d4318deec04..b6f64924922 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -806,6 +806,7 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, Py { PyObject* res; PyObject* begin_statement; + static PyObject* begin_word; Py_XDECREF(self->isolation_level); @@ -832,11 +833,11 @@ static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, Py Py_INCREF(isolation_level); self->isolation_level = isolation_level; - begin_statement = PyUnicode_FromString("BEGIN "); - if (!begin_statement) { - return -1; + if (!begin_word) { + begin_word = PyUnicode_FromString("BEGIN "); + if (!begin_word) return -1; } - PyUnicode_Concat(begin_statement, isolation_level); + begin_statement = PyUnicode_Concat(begin_word, isolation_level); if (!begin_statement) { return -1; }