X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fdb.cpp;h=81d519a72edfe716fc5b7824b780abd220b09100;hb=40e17afbceaa325776356fd4cd7cc2805cd054c2;hp=d857cf05145df20bd690d016f3cf4f274e37b720;hpb=36ea307baa89088cae666d3c9134e386c08c9d57;p=novacoin.git diff --git a/src/db.cpp b/src/db.cpp index d857cf0..81d519a 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -42,11 +42,7 @@ void CDBEnv::EnvShutdown() DbEnv(0).remove(strPath.c_str(), 0); } -CDBEnv::CDBEnv() : dbenv(DB_CXX_NO_EXCEPTIONS) -{ - fDbEnvInit = false; - fMockDb = false; -} +CDBEnv::CDBEnv() : fDetachDB(false), fDbEnvInit(false), fMockDb(false), dbenv(DB_CXX_NO_EXCEPTIONS) { } CDBEnv::~CDBEnv() { @@ -226,7 +222,7 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive, while (!strDump.eof() && keyHex != "DATA=END") { getline(strDump, keyHex); - if (keyHex != "DATA_END") + if (keyHex != "DATA=END") { getline(strDump, valueHex); vResult.push_back(make_pair(ParseHex(keyHex),ParseHex(valueHex))); @@ -400,7 +396,8 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) } Dbc* pcursor = db.GetCursor(); - if (pcursor) + if (pcursor) { + size_t pszSkipLen = strlen(pszSkip); while (fSuccess) { CDataStream ssKey(SER_DISK, CLIENT_VERSION); @@ -418,7 +415,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) break; } if (pszSkip && - strncmp(&ssKey[0], pszSkip, std::min(ssKey.size(), strlen(pszSkip))) == 0) + strncmp(&ssKey[0], pszSkip, std::min(ssKey.size(), pszSkipLen)) == 0) continue; if (strncmp(&ssKey[0], "\x07version", 8) == 0) { @@ -432,6 +429,7 @@ bool CDB::Rewrite(const string& strFile, const char* pszSkip) if (ret2 > 0) fSuccess = false; } + } if (fSuccess) { db.Close();