diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp index a590ca13..c7266f19 100644 --- a/src/blockchain_db/lmdb/db_lmdb.cpp +++ b/src/blockchain_db/lmdb/db_lmdb.cpp @@ -749,7 +749,7 @@ uint64_t BlockchainLMDB::add_transaction_data(const crypto::hash& blk_hash, cons uint64_t m_height = height(); int result; - uint64_t tx_id = num_txs(); + uint64_t tx_id = get_tx_count(); CURSOR(txs) CURSOR(tx_indices) @@ -1741,20 +1741,6 @@ uint64_t BlockchainLMDB::height() const return db_stats.ms_entries; } -uint64_t BlockchainLMDB::num_txs() const -{ - LOG_PRINT_L3("BlockchainLMDB::" << __func__); - check_open(); - TXN_PREFIX_RDONLY(); - int result; - - // get current height - MDB_stat db_stats; - if ((result = mdb_stat(m_txn, m_txs, &db_stats))) - throw0(DB_ERROR(lmdb_error("Failed to query m_txs: ", result).c_str())); - return db_stats.ms_entries; -} - uint64_t BlockchainLMDB::num_outputs() const { LOG_PRINT_L3("BlockchainLMDB::" << __func__); @@ -1900,10 +1886,11 @@ uint64_t BlockchainLMDB::get_tx_count() const check_open(); TXN_PREFIX_RDONLY(); + int result; MDB_stat db_stats; - if (mdb_stat(m_txn, m_tx_indices, &db_stats)) - throw0(DB_ERROR("Failed to query m_tx_indices")); + if ((result = mdb_stat(m_txn, m_txs, &db_stats))) + throw0(DB_ERROR(lmdb_error("Failed to query m_txs: ", result).c_str())); TXN_POSTFIX_RDONLY(); diff --git a/src/blockchain_db/lmdb/db_lmdb.h b/src/blockchain_db/lmdb/db_lmdb.h index ade7b6a7..8a567756 100644 --- a/src/blockchain_db/lmdb/db_lmdb.h +++ b/src/blockchain_db/lmdb/db_lmdb.h @@ -310,7 +310,6 @@ private: virtual void remove_spent_key(const crypto::key_image& k_image); - uint64_t num_txs() const; uint64_t num_outputs() const; // Hard fork diff --git a/src/cryptonote_core/hardfork.cpp b/src/cryptonote_core/hardfork.cpp index 50da7005..546af207 100644 --- a/src/cryptonote_core/hardfork.cpp +++ b/src/cryptonote_core/hardfork.cpp @@ -222,7 +222,7 @@ bool HardFork::reorganize_from_block_height(uint64_t height) return false; db.set_batch_transactions(true); - db.batch_start(); + bool stop_batch = db.batch_start(); versions.clear(); @@ -250,7 +250,8 @@ bool HardFork::reorganize_from_block_height(uint64_t height) add(db.get_block_from_height(h), h); } - db.batch_stop(); + if (stop_batch) + db.batch_stop(); return true; }