From ac0b18911b73e7ca5da3f239e6f388ed60ed6b6c Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 28 Mar 2012 10:34:35 -0700 Subject: [PATCH] Fix entry counts in cursor_put when replacing an existing item --- libraries/libmdb/mdb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 6eff56c..3e0c0e2 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -4232,6 +4232,7 @@ more: (dkey.mv_size & 1) + (data->mv_size & 1); } mdb_node_del(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], 0); + mc->mc_db->md_entries--; do_sub = 1; rdata = &xdata; xdata.mv_size = fp->mp_upper; @@ -4306,6 +4307,7 @@ more: mp->mp_ptrs[i] = fp->mp_ptrs[i] + offset; } mdb_node_del(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], 0); + mc->mc_db->md_entries--; do_sub = 1; goto new_sub; } @@ -4324,6 +4326,7 @@ current: goto done; } mdb_node_del(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], 0); + mc->mc_db->md_entries--; } else { DPRINTF("inserting key at index %i", mc->mc_ki[mc->mc_top]); }