diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index d4edda47bc189c6498a473b348741564dd1398c7..82c23dd0a5764c1e7f60134a9432814288eb6a6d 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -2778,11 +2778,8 @@ mdb_txn_reset0(MDB_txn *txn, const char *act) txn->mt_dbxs = NULL; /* mark txn as reset */ } else { pgno_t *pghead = env->me_pghead; - env->me_pghead = NULL; - env->me_pglast = 0; mdb_cursors_close(txn, 0); - if (!(env->me_flags & MDB_WRITEMAP)) { mdb_dlist_free(txn); } @@ -2790,6 +2787,9 @@ mdb_txn_reset0(MDB_txn *txn, const char *act) if (!txn->mt_parent) { if (mdb_midl_shrink(&txn->mt_free_pgs)) env->me_free_pgs = txn->mt_free_pgs; + /* me_pgstate: */ + env->me_pghead = NULL; + env->me_pglast = 0; env->me_txn = NULL; /* The writer mutex was locked in mdb_txn_begin. */