]> the.earth.li Git - onak.git/commitdiff
Add more checking on db4 cleanup.
authorJonathan McDowell <noodles@earth.li>
Tue, 14 Sep 2004 11:03:56 +0000 (11:03 +0000)
committerJonathan McDowell <noodles@earth.li>
Tue, 14 Sep 2004 11:03:56 +0000 (11:03 +0000)
Add more checking when cleaning up the db4 backend; some things might
not have succeeded, but we should still try to cleanup those that did.

keydb_db4.c

index 899cd878467735ae8a57d5543a773c200334aa6d..0d7b46b935de0dd422b7e4cea340aada5b726be1 100644 (file)
@@ -224,17 +224,25 @@ void cleanupdb(void)
 {
        int i = 0;
 
-       dbenv->txn_checkpoint(dbenv, 0, 0, 0);
-       id32db->close(id32db, 0);
-       id32db = NULL;
-       worddb->close(worddb, 0);
-       worddb = NULL;
-       for (i = 0; i < numdbs; i++) {
-               dbconns[i]->close(dbconns[i], 0);
-               dbconns[i] = NULL;
+       if (dbenv != NULL) {
+               dbenv->txn_checkpoint(dbenv, 0, 0, 0);
+               if (id32db != NULL) {
+                       id32db->close(id32db, 0);
+                       id32db = NULL;
+               }
+               if (worddb != NULL) {
+                       worddb->close(worddb, 0);
+                       worddb = NULL;
+               }
+               for (i = 0; i < numdbs; i++) {
+                       if (dbconns[i] != NULL) {
+                               dbconns[i]->close(dbconns[i], 0);
+                               dbconns[i] = NULL;
+                       }
+               }
+               dbenv->close(dbenv, 0);
+               dbenv = NULL;
        }
-       dbenv->close(dbenv, 0);
-       dbenv = NULL;
 }
 
 /**