]> git.sur5r.net Git - openldap/commitdiff
ITS#7829 Simplify last commit
authorHallvard Furuseth <hallvard@openldap.org>
Wed, 2 Apr 2014 05:02:14 +0000 (07:02 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Wed, 2 Apr 2014 05:02:14 +0000 (07:02 +0200)
libraries/liblmdb/mdb.c

index 10a8358449d2333086daf00579f5b7dcc36fbc12..2e47bc02e7282eaa0579b35a473d705081ee4024 100644 (file)
@@ -7464,24 +7464,21 @@ mdb_rebalance(MDB_cursor *mc)
        minkeys = 1 + (IS_BRANCH(mn.mc_pg[mn.mc_top]));
        if (PAGEFILL(mc->mc_txn->mt_env, mn.mc_pg[mn.mc_top]) >= FILL_THRESHOLD && NUMKEYS(mn.mc_pg[mn.mc_top]) > minkeys) {
                rc = mdb_node_move(&mn, mc);
-               if (mc->mc_ki[ptop] == 0) {
-                       mc->mc_ki[mc->mc_top] = oldki;
-               } else {
-                       mc->mc_ki[mc->mc_top] = oldki + 1;
+               if (mc->mc_ki[ptop]) {
+                       oldki++;
                }
        } else {
                if (mc->mc_ki[ptop] == 0) {
                        rc = mdb_page_merge(&mn, mc);
-                       mc->mc_ki[mc->mc_top] = oldki;
                } else {
-                       unsigned int nkeys = NUMKEYS(mn.mc_pg[mn.mc_top]);
+                       oldki += NUMKEYS(mn.mc_pg[mn.mc_top]);
                        mn.mc_ki[mn.mc_top] += mc->mc_ki[mn.mc_top] + 1;
                        rc = mdb_page_merge(mc, &mn);
                        mc->mc_pg[mc->mc_top] = mn.mc_pg[mn.mc_top];
-                       mc->mc_ki[mc->mc_top] = oldki + nkeys;
                }
                mc->mc_flags &= ~C_EOF;
        }
+       mc->mc_ki[mc->mc_top] = oldki;
        return rc;
 }