]> granicus.if.org Git - python/commitdiff
Fix some leaks - Neal Norwitz
authorJesus Cea <jcea@jcea.es>
Wed, 3 Sep 2008 17:50:59 +0000 (17:50 +0000)
committerJesus Cea <jcea@jcea.es>
Wed, 3 Sep 2008 17:50:59 +0000 (17:50 +0000)
Modules/_bsddb.c
Modules/bsddb.h

index 9e89273fc93541345444c66e8529e2a28bd750ad..9324d76b3c2322940eed8cbe4cf8fb6143203642 100644 (file)
@@ -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) {
index af5e56b570bbf8374c15f1528e8a4d83349b8c4d..274bcc236fb277849731c7f35b20f77e911afd22 100644 (file)
 #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 */