Fix lmdb txn commit code

This commit is contained in:
Lee *!* Clagett 2024-06-04 18:55:39 -04:00
parent cc73fe7116
commit d64a5f70d2
2 changed files with 9 additions and 5 deletions

View File

@ -179,9 +179,10 @@ namespace lmdb
expect<void> database::commit(write_txn txn) noexcept
{
MONERO_PRECOND(txn != nullptr);
MONERO_LMDB_CHECK(mdb_txn_commit(txn.get()));
txn.release();
const int err = mdb_txn_commit(txn.release());
release_context(ctx);
if (err)
return {lmdb::error(err)};
return success();
}
} // lmdb

View File

@ -123,10 +123,13 @@ namespace lmdb
const auto wrote = f(*(*txn));
if (wrote)
{
MONERO_CHECK(commit(std::move(*txn)));
return wrote;
const auto committed = commit(std::move(*txn));
if (committed)
return wrote;
if (committed != lmdb::error(MDB_MAP_FULL))
return committed.error();
}
if (wrote != lmdb::error(MDB_MAP_FULL))
else if (wrote != lmdb::error(MDB_MAP_FULL))
return wrote;
txn->reset();