#18 fixed
authoradam <adamansky@gmail.com>
Tue, 25 Dec 2012 15:53:56 +0000 (22:53 +0700)
committeradam <adamansky@gmail.com>
Tue, 25 Dec 2012 15:53:56 +0000 (22:53 +0700)
tcejdb/ejdb.c

index 0c94cb4..e0ec698 100644 (file)
@@ -300,11 +300,9 @@ EJDB_EXPORT bool ejdbrmcoll(EJDB *jb, const char *colname, bool unlinkfile) {
     }
     EJCOLL *cdbs = jb->cdbs;
     for (int i = 0; i < jb->cdbsnum; ++i) {
-        coll = jb->cdbs + i;
+        coll = cdbs + i;
         if (!strcmp(colname, coll->cname)) {
             if (!JBCLOCKMETHOD(coll, true)) return false;
-            jb->cdbsnum--;
-            memmove(cdbs + i, cdbs + i + 1, sizeof (*cdbs) * (jb->cdbsnum - i));
             tctdbout2(jb->metadb, colname);
             tctdbvanish(coll->tdb);
             TCLIST *paths = tclistnew2(10);
@@ -325,6 +323,8 @@ EJDB_EXPORT bool ejdbrmcoll(EJDB *jb, const char *colname, bool unlinkfile) {
             tclistdel(paths);
             JBCUNLOCKMETHOD(coll);
             _delcoldb(coll);
+            jb->cdbsnum--;
+            memmove(cdbs + i, cdbs + i + 1, sizeof (*cdbs) * (jb->cdbsnum - i));
             break;
         }
     }