diff options
author | Howard Chu <hyc@openldap.org> | 2016-11-12 23:11:20 +0000 |
---|---|---|
committer | Howard Chu <hyc@openldap.org> | 2016-11-12 23:11:20 +0000 |
commit | e58db7d5568c8ac91c0f1e6c64a58ba6f84b037d (patch) | |
tree | a0c7b67d4e2349baa8aa9594e4da2bc7ec56a8df | |
parent | f7e85d7804109a429dd6d24b19cc2148a7f43813 (diff) | |
download | lmdb-e58db7d5568c8ac91c0f1e6c64a58ba6f84b037d.tar.gz lmdb-e58db7d5568c8ac91c0f1e6c64a58ba6f84b037d.tar.bz2 lmdb-e58db7d5568c8ac91c0f1e6c64a58ba6f84b037d.zip |
More for ITS#8406
Revert excess cursor fixup
-rw-r--r-- | libraries/liblmdb/mdb.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 17f5a86..026019e 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -9198,9 +9198,11 @@ mdb_cursor_del0(MDB_cursor *mc) } if (mc->mc_db->md_flags & MDB_DUPSORT) { MDB_node *node = NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]); - if (node->mn_flags & F_DUPDATA) { + /* If this node is a fake page, it needs to be reinited + * because its data has moved. + */ + if ((node->mn_flags & (F_DUPDATA|F_SUBDATA)) == F_DUPDATA) { mdb_xcursor_init1(m3, node); - m3->mc_xcursor->mx_cursor.mc_flags |= C_DEL; } } } |