From 754e5af1ab6b050276170f14d63de9b82d4af5e5 Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Thu, 29 May 2014 21:57:26 +0200 Subject: [PATCH] Sync LMDB codebase. --- src/lmdb/COPYRIGHT | 2 +- src/lmdb/mdb.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lmdb/COPYRIGHT b/src/lmdb/COPYRIGHT index 4482816cf5d..e0eb484c7aa 100644 --- a/src/lmdb/COPYRIGHT +++ b/src/lmdb/COPYRIGHT @@ -1,4 +1,4 @@ -Copyright 2011-2013 Howard Chu, Symas Corp. +Copyright 2011-2014 Howard Chu, Symas Corp. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/src/lmdb/mdb.c b/src/lmdb/mdb.c index e0f551eba41..55b8a1dff19 100644 --- a/src/lmdb/mdb.c +++ b/src/lmdb/mdb.c @@ -7383,6 +7383,7 @@ mdb_rebalance(MDB_cursor *mc) } } } else if (IS_BRANCH(mp) && NUMKEYS(mp) == 1) { + int i; DPUTS("collapsing root page!"); rc = mdb_midl_append(&mc->mc_txn->mt_free_pgs, mp->mp_pgno); if (rc) @@ -7394,6 +7395,10 @@ mdb_rebalance(MDB_cursor *mc) mc->mc_db->md_depth--; mc->mc_db->md_branch_pages--; mc->mc_ki[0] = mc->mc_ki[1]; + for (i = 1; imc_db->md_depth; i++) { + mc->mc_pg[i] = mc->mc_pg[i+1]; + mc->mc_ki[i] = mc->mc_ki[i+1]; + } { /* Adjust other cursors pointing to mp */ MDB_cursor *m2, *m3; @@ -7406,7 +7411,6 @@ mdb_rebalance(MDB_cursor *mc) m3 = m2; if (m3 == mc || m3->mc_snum < mc->mc_snum) continue; if (m3->mc_pg[0] == mp) { - int i; m3->mc_snum--; m3->mc_top--; for (i=0; imc_snum; i++) {