diff options
author | Jesus Cea <jcea@jcea.es> | 2008-09-03 17:50:59 (GMT) |
---|---|---|
committer | Jesus Cea <jcea@jcea.es> | 2008-09-03 17:50:59 (GMT) |
commit | a786f2b4980020bb54d6fdfc3e4d116497eb553d (patch) | |
tree | 6426db21d05e53ea8d96cf2ea6fd429d4a2733fc /Modules | |
parent | 8951b6172cdfcbc6c14949c4b9fa32908615d49c (diff) | |
download | cpython-a786f2b4980020bb54d6fdfc3e4d116497eb553d.zip cpython-a786f2b4980020bb54d6fdfc3e4d116497eb553d.tar.gz cpython-a786f2b4980020bb54d6fdfc3e4d116497eb553d.tar.bz2 |
Fix some leaks - Neal Norwitz
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_bsddb.c | 8 | ||||
-rw-r--r-- | Modules/bsddb.h | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/Modules/_bsddb.c b/Modules/_bsddb.c index 9e89273..9324d76 100644 --- a/Modules/_bsddb.c +++ b/Modules/_bsddb.c @@ -1106,7 +1106,7 @@ DBEnv_dealloc(DBEnvObject* self) { PyObject *dummy; - if (self->db_env && !self->closed) { + if (self->db_env) { dummy=DBEnv_close_internal(self,0); Py_XDECREF(dummy); } @@ -3981,13 +3981,15 @@ DBEnv_close_internal(DBEnvObject* self, int flags) dummy=DB_close_internal(self->children_dbs,0); Py_XDECREF(dummy); } + } + self->closed = 1; + if (self->db_env) { MYDB_BEGIN_ALLOW_THREADS; err = self->db_env->close(self->db_env, flags); MYDB_END_ALLOW_THREADS; /* after calling DBEnv->close, regardless of error, this DBEnv * may not be accessed again (Berkeley DB docs). */ - self->closed = 1; self->db_env = NULL; RETURN_IF_ERR(); } @@ -6148,7 +6150,7 @@ DBSequence_open(DBSequenceObject* self, PyObject* args, PyObject* kwargs) err = self->sequence->open(self->sequence, txn, &key, flags); MYDB_END_ALLOW_THREADS - CLEAR_DBT(key); + FREE_DBT(key); RETURN_IF_ERR(); if (txn) { diff --git a/Modules/bsddb.h b/Modules/bsddb.h index af5e56b..274bcc2 100644 --- a/Modules/bsddb.h +++ b/Modules/bsddb.h @@ -105,7 +105,7 @@ #error "eek! DBVER can't handle minor versions > 9" #endif -#define PY_BSDDB_VERSION "4.7.3pre3" +#define PY_BSDDB_VERSION "4.7.3pre4" /* Python object definitions */ |