ITS#7701 fix mdb_rebalance

Must copy tmp cursor back to real cursor when merging into tmp cursor.
vmware
Howard Chu 11 years ago
parent 0f842a2710
commit 0144da6eab
  1. 5
      libraries/liblmdb/mdb.c

@ -7248,8 +7248,11 @@ mdb_rebalance(MDB_cursor *mc)
else { else {
if (mc->mc_ki[ptop] == 0) if (mc->mc_ki[ptop] == 0)
rc = mdb_page_merge(&mn, mc); rc = mdb_page_merge(&mn, mc);
else else {
mn.mc_ki[mn.mc_top] += mc->mc_ki[mn.mc_top] + 1;
rc = mdb_page_merge(mc, &mn); rc = mdb_page_merge(mc, &mn);
mdb_cursor_copy(&mn, mc);
}
mc->mc_flags &= ~(C_INITIALIZED|C_EOF); mc->mc_flags &= ~(C_INITIALIZED|C_EOF);
} }
return rc; return rc;

Loading…
Cancel
Save