From 0165a56f20bf0666c9a0850d5634bf5547cee29b Mon Sep 17 00:00:00 2001 From: Jonas Schnelli Date: Sat, 12 Nov 2016 10:53:18 +0100 Subject: Refactor ZapWalletTxes to avoid layer vialotions --- src/wallet/walletdb.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'src/wallet/walletdb.cpp') diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index 9cd19ab619..e67b7f2c58 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -646,20 +646,17 @@ DBErrors CWalletDB::LoadWallet(CWallet* pwallet) return result; } -DBErrors CWalletDB::FindWalletTx(CWallet* pwallet, vector& vTxHash, vector& vWtx) +DBErrors CWalletDB::FindWalletTx(vector& vTxHash, vector& vWtx) { - pwallet->vchDefaultKey = CPubKey(); bool fNoncriticalErrors = false; DBErrors result = DB_LOAD_OK; try { - LOCK(pwallet->cs_wallet); int nMinVersion = 0; if (Read((string)"minversion", nMinVersion)) { if (nMinVersion > CLIENT_VERSION) return DB_TOO_NEW; - pwallet->LoadMinVersion(nMinVersion); } // Get cursor @@ -712,12 +709,12 @@ DBErrors CWalletDB::FindWalletTx(CWallet* pwallet, vector& vTxHash, vec return result; } -DBErrors CWalletDB::ZapSelectTx(CWallet* pwallet, vector& vTxHashIn, vector& vTxHashOut) +DBErrors CWalletDB::ZapSelectTx(vector& vTxHashIn, vector& vTxHashOut) { // build list of wallet TXs and hashes vector vTxHash; vector vWtx; - DBErrors err = FindWalletTx(pwallet, vTxHash, vWtx); + DBErrors err = FindWalletTx(vTxHash, vWtx); if (err != DB_LOAD_OK) { return err; } @@ -736,7 +733,6 @@ DBErrors CWalletDB::ZapSelectTx(CWallet* pwallet, vector& vTxHashIn, ve break; } else if ((*it) == hash) { - pwallet->mapWallet.erase(hash); if(!EraseTx(hash)) { LogPrint("db", "Transaction was found for deletion but returned database error: %s\n", hash.GetHex()); delerror = true; @@ -751,11 +747,11 @@ DBErrors CWalletDB::ZapSelectTx(CWallet* pwallet, vector& vTxHashIn, ve return DB_LOAD_OK; } -DBErrors CWalletDB::ZapWalletTx(CWallet* pwallet, vector& vWtx) +DBErrors CWalletDB::ZapWalletTx(vector& vWtx) { // build list of wallet TXs vector vTxHash; - DBErrors err = FindWalletTx(pwallet, vTxHash, vWtx); + DBErrors err = FindWalletTx(vTxHash, vWtx); if (err != DB_LOAD_OK) return err; -- cgit v1.2.3