Commit ac25fab1 authored by Jesus Cea's avatar Jesus Cea

Fix some leaks - Neal Norwitz

parent b339b2aa
...@@ -1106,7 +1106,7 @@ DBEnv_dealloc(DBEnvObject* self) ...@@ -1106,7 +1106,7 @@ DBEnv_dealloc(DBEnvObject* self)
{ {
PyObject *dummy; PyObject *dummy;
if (self->db_env && !self->closed) { if (self->db_env) {
dummy=DBEnv_close_internal(self,0); dummy=DBEnv_close_internal(self,0);
Py_XDECREF(dummy); Py_XDECREF(dummy);
} }
...@@ -3981,13 +3981,15 @@ DBEnv_close_internal(DBEnvObject* self, int flags) ...@@ -3981,13 +3981,15 @@ DBEnv_close_internal(DBEnvObject* self, int flags)
dummy=DB_close_internal(self->children_dbs,0); dummy=DB_close_internal(self->children_dbs,0);
Py_XDECREF(dummy); Py_XDECREF(dummy);
} }
}
self->closed = 1;
if (self->db_env) {
MYDB_BEGIN_ALLOW_THREADS; MYDB_BEGIN_ALLOW_THREADS;
err = self->db_env->close(self->db_env, flags); err = self->db_env->close(self->db_env, flags);
MYDB_END_ALLOW_THREADS; MYDB_END_ALLOW_THREADS;
/* after calling DBEnv->close, regardless of error, this DBEnv /* after calling DBEnv->close, regardless of error, this DBEnv
* may not be accessed again (Berkeley DB docs). */ * may not be accessed again (Berkeley DB docs). */
self->closed = 1;
self->db_env = NULL; self->db_env = NULL;
RETURN_IF_ERR(); RETURN_IF_ERR();
} }
...@@ -6148,7 +6150,7 @@ DBSequence_open(DBSequenceObject* self, PyObject* args, PyObject* kwargs) ...@@ -6148,7 +6150,7 @@ DBSequence_open(DBSequenceObject* self, PyObject* args, PyObject* kwargs)
err = self->sequence->open(self->sequence, txn, &key, flags); err = self->sequence->open(self->sequence, txn, &key, flags);
MYDB_END_ALLOW_THREADS MYDB_END_ALLOW_THREADS
CLEAR_DBT(key); FREE_DBT(key);
RETURN_IF_ERR(); RETURN_IF_ERR();
if (txn) { if (txn) {
......
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
#error "eek! DBVER can't handle minor versions > 9" #error "eek! DBVER can't handle minor versions > 9"
#endif #endif
#define PY_BSDDB_VERSION "4.7.3pre3" #define PY_BSDDB_VERSION "4.7.3pre4"
/* Python object definitions */ /* Python object definitions */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment