about summary refs log tree commit diff
path: root/src/libstore/db.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-10-13T11·15+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-10-13T11·15+0000
commite4af398681576d62df29cfee018dea800a7dfa17 (patch)
treeca2be74ec96cb78556d1ab57492a0ec20d03404a /src/libstore/db.cc
parent2a535689fe801441ef8e4a5c6659925528cce106 (diff)
* Don't crash when upgrading the Berkeley DB environment.
Diffstat (limited to 'src/libstore/db.cc')
-rw-r--r--src/libstore/db.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstore/db.cc b/src/libstore/db.cc
index ca5d0582a099..f378ef454947 100644
--- a/src/libstore/db.cc
+++ b/src/libstore/db.cc
@@ -30,7 +30,12 @@ class DestroyDbEnv
     DbEnv * dbenv;
 public:
     DestroyDbEnv(DbEnv * _dbenv) : dbenv(_dbenv) { }
-    ~DestroyDbEnv() { if (dbenv) { dbenv->close(0); delete dbenv; } }
+    ~DestroyDbEnv() {
+        if (dbenv) {
+            if (dbenv->get_DB_ENV()) dbenv->close(0);
+            delete dbenv;
+        }
+    }
     void release() { dbenv = 0; };
 };