Browse Source

Make CWalletTx::pwallet private

0.8
Pieter Wuille 14 years ago committed by Pieter Wuille
parent
commit
4c6e22953e
  1. 2
      src/db.cpp
  2. 6
      src/wallet.cpp
  3. 9
      src/wallet.h

2
src/db.cpp

@ -810,7 +810,7 @@ int CWalletDB::LoadWallet(CWallet* pwallet) @@ -810,7 +810,7 @@ int CWalletDB::LoadWallet(CWallet* pwallet)
ssKey >> hash;
CWalletTx& wtx = pwallet->mapWallet[hash];
ssValue >> wtx;
wtx.pwallet = pwallet;
wtx.BindWallet(pwallet);
if (wtx.GetHash() != hash)
printf("Error in wallet.dat, hash mismatch\n");

6
src/wallet.cpp

@ -232,7 +232,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn) @@ -232,7 +232,7 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn)
// Inserts only if not already there, returns tx inserted or tx found
pair<map<uint256, CWalletTx>::iterator, bool> ret = mapWallet.insert(make_pair(hash, wtxIn));
CWalletTx& wtx = (*ret.first).second;
wtx.pwallet = this;
wtx.BindWallet(this);
bool fInsertedNew = ret.second;
if (fInsertedNew)
wtx.nTimeReceived = GetAdjustedTime();
@ -924,7 +924,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW @@ -924,7 +924,7 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend, CW
if (vecSend.empty() || nValue < 0)
return false;
wtxNew.pwallet = this;
wtxNew.BindWallet(this);
CRITICAL_BLOCK(cs_main)
CRITICAL_BLOCK(cs_wallet)
@ -1062,7 +1062,7 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey) @@ -1062,7 +1062,7 @@ bool CWallet::CommitTransaction(CWalletTx& wtxNew, CReserveKey& reservekey)
BOOST_FOREACH(const CTxIn& txin, wtxNew.vin)
{
CWalletTx &coin = mapWallet[txin.prevout.hash];
coin.pwallet = this;
coin.BindWallet(this);
coin.MarkSpent(txin.prevout.n);
coin.WriteToDisk();
vWalletUpdated.push_back(coin.GetHash());

9
src/wallet.h

@ -243,9 +243,10 @@ public: @@ -243,9 +243,10 @@ public:
//
class CWalletTx : public CMerkleTx
{
public:
private:
const CWallet* pwallet;
public:
std::vector<CMerkleTx> vtxPrev;
std::map<std::string, std::string> mapValue;
std::vector<std::pair<std::string, std::string> > vOrderForm;
@ -389,6 +390,12 @@ public: @@ -389,6 +390,12 @@ public:
fChangeCached = false;
}
void BindWallet(CWallet *pwalletIn)
{
pwallet = pwalletIn;
MarkDirty();
}
void MarkSpent(unsigned int nOut)
{
if (nOut >= vout.size())

Loading…
Cancel
Save