Merge pull request #4940

9e64a71 blockchain: call deinit in dtor (moneromooo-monero)
This commit is contained in:
luigi1111 2018-12-31 15:44:49 -06:00
commit c7af379d29
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
2 changed files with 15 additions and 7 deletions

View file

@ -171,6 +171,11 @@ Blockchain::Blockchain(tx_memory_pool& tx_pool) :
LOG_PRINT_L3("Blockchain::" << __func__); LOG_PRINT_L3("Blockchain::" << __func__);
} }
//------------------------------------------------------------------ //------------------------------------------------------------------
Blockchain::~Blockchain()
{
deinit();
}
//------------------------------------------------------------------
bool Blockchain::have_tx(const crypto::hash &id) const bool Blockchain::have_tx(const crypto::hash &id) const
{ {
LOG_PRINT_L3("Blockchain::" << __func__); LOG_PRINT_L3("Blockchain::" << __func__);
@ -550,15 +555,13 @@ bool Blockchain::deinit()
// as this should be called if handling a SIGSEGV, need to check // as this should be called if handling a SIGSEGV, need to check
// if m_db is a NULL pointer (and thus may have caused the illegal // if m_db is a NULL pointer (and thus may have caused the illegal
// memory operation), otherwise we may cause a loop. // memory operation), otherwise we may cause a loop.
if (m_db == NULL)
{
throw DB_ERROR("The db pointer is null in Blockchain, the blockchain may be corrupt!");
}
try try
{ {
m_db->close(); if (m_db)
MTRACE("Local blockchain read/write activity stopped successfully"); {
m_db->close();
MTRACE("Local blockchain read/write activity stopped successfully");
}
} }
catch (const std::exception& e) catch (const std::exception& e)
{ {

View file

@ -120,6 +120,11 @@ namespace cryptonote
*/ */
Blockchain(tx_memory_pool& tx_pool); Blockchain(tx_memory_pool& tx_pool);
/**
* @brief Blockchain destructor
*/
~Blockchain();
/** /**
* @brief Initialize the Blockchain state * @brief Initialize the Blockchain state
* *