diff options
| author | Riccardo Spagni <ric@spagni.net> | 2016-08-11 22:44:29 +0200 |
|---|---|---|
| committer | Riccardo Spagni <ric@spagni.net> | 2016-08-11 22:44:29 +0200 |
| commit | 45f4ef7a6d45269d446b8303ce598df13bcf9dfb (patch) | |
| tree | 1b39f5f18bada8e11602f732d9d08336e745cd7e | |
| parent | 0faf572db890c8bed9e5e4a7a21cd7d46d6f53d2 (diff) | |
| parent | 7442dd084acfcef571c51f53277247c050d1c98b (diff) | |
| download | monzero-core-45f4ef7a6d45269d446b8303ce598df13bcf9dfb.tar.gz monzero-core-45f4ef7a6d45269d446b8303ce598df13bcf9dfb.tar.xz monzero-core-45f4ef7a6d45269d446b8303ce598df13bcf9dfb.zip | |
Merge pull request #955
7442dd0 More for Issue #855 (Howard Chu)
| -rw-r--r-- | external/db_drivers/liblmdb/mdb.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/external/db_drivers/liblmdb/mdb.c b/external/db_drivers/liblmdb/mdb.c index 2d8e458f7..32e225163 100644 --- a/external/db_drivers/liblmdb/mdb.c +++ b/external/db_drivers/liblmdb/mdb.c @@ -6599,8 +6599,14 @@ mdb_cursor_set(MDB_cursor *mc, MDB_val *key, MDB_val *data, if (key->mv_size == 0) return MDB_BAD_VALSIZE; - if (mc->mc_xcursor) + if (mc->mc_xcursor) { +#ifdef MDB_VL32 + if (mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) { + mdb_cursor_unref(&mc->mc_xcursor->mx_cursor); + } +#endif mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + } /* See if we're already on the right page */ if (mc->mc_flags & C_INITIALIZED) { @@ -6732,11 +6738,6 @@ set1: return MDB_SUCCESS; } -#ifdef MDB_VL32 - if (mc->mc_xcursor && mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) { - mdb_cursor_unref(&mc->mc_xcursor->mx_cursor); - } -#endif if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { mdb_xcursor_init1(mc, leaf); } @@ -8311,6 +8312,11 @@ mdb_cursor_count(MDB_cursor *mc, mdb_size_t *countp) void mdb_cursor_close(MDB_cursor *mc) { +#ifdef MDB_VL32 + if (mc) { + mdb_cursor_unref(mc); + } +#endif if (mc && !mc->mc_backup) { /* remove from txn, if tracked */ if ((mc->mc_flags & C_UNTRACK) && mc->mc_txn->mt_cursors) { |
