Revert "ITS#7515 fix mdb_dbi_open/close"

This reverts commit 48dc782ea6.
vmware
Howard Chu 12 years ago
parent 744e311939
commit e0eb495fb3
  1. 13
      libraries/liblmdb/mdb.c

@ -1951,11 +1951,6 @@ static void
mdb_txn_reset0(MDB_txn *txn)
{
MDB_env *env = txn->mt_env;
unsigned int i;
/* If there were uncommitted dbi_opens, undo them now */
for (i=env->me_numdbs; i<txn->mt_numdbs; i++)
mdb_dbi_close(env, i);
if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) {
if (!(env->me_flags & MDB_ROFS))
@ -1963,6 +1958,7 @@ mdb_txn_reset0(MDB_txn *txn)
} else {
MDB_oldpages *mop;
MDB_page *dp;
unsigned int i;
/* close(free) all cursors */
for (i=0; i<txn->mt_numdbs; i++) {
@ -7055,6 +7051,7 @@ int mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *db
mdb_default_cmp(txn, slot);
if (!unused) {
txn->mt_numdbs++;
txn->mt_env->me_numdbs++;
}
}
@ -7072,12 +7069,8 @@ int mdb_stat(MDB_txn *txn, MDB_dbi dbi, MDB_stat *arg)
void mdb_dbi_close(MDB_env *env, MDB_dbi dbi)
{
char *ptr;
if (dbi <= MAIN_DBI || dbi >= env->me_maxdbs)
if (dbi <= MAIN_DBI || dbi >= env->me_numdbs)
return;
/* If the dbi is greater than env->me_numdbs, no harm is done.
* And it may happen if we're closing a DB that was just opened,
* but the opening txn hadn't committed yet.
*/
ptr = env->me_dbxs[dbi].md_name.mv_data;
env->me_dbxs[dbi].md_name.mv_data = NULL;
env->me_dbxs[dbi].md_name.mv_size = 0;

Loading…
Cancel
Save