diff --git a/src/Application.cpp b/src/Application.cpp index 0b8ff282b..dfbf216b5 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -116,7 +116,7 @@ void Application::run() rootAddress.setAccountPublic(rootFamilyGenerator, 0); std::cerr << "Root account: " << rootAddress.humanAccountID() << std::endl; - Ledger::pointer firstLedger(new Ledger(rootAddress, 100000000)); + Ledger::pointer firstLedger = boost::make_shared(rootAddress, 100000000); assert(!!firstLedger->getAccountState(rootAddress)); firstLedger->updateHash(); firstLedger->setClosed(); diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index 8f5e4027f..df73b74cf 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -48,7 +48,6 @@ void LedgerAcquire::trigger(bool timer) if (!mHaveBase) { - // WRITEME: Do we need to search for peers? boost::shared_ptr tmGL = boost::make_shared(); tmGL->set_ledgerhash(mHash.begin(), mHash.size()); tmGL->set_itype(newcoin::liBASE); @@ -147,7 +146,7 @@ void LedgerAcquire::sendRequest(boost::shared_ptr tmGL) PackedMessage::pointer packet = boost::make_shared(tmGL, newcoin::mtGET_LEDGER); std::list >::iterator it = mPeers.begin(); - while(it!=mPeers.end()) + while(it != mPeers.end()) { if (it->expired()) mPeers.erase(it++); @@ -203,15 +202,16 @@ bool LedgerAcquire::takeBase(const std::string& data) { // Return value: true=normal, false=bad data boost::recursive_mutex::scoped_lock sl(mLock); if (mHaveBase) return true; - Ledger* ledger = new Ledger(data); - if (ledger->getHash() != mHash) + mLedger = boost::make_shared(data); + if (mLedger->getHash() != mHash) { - delete ledger; + mLedger = Ledger::pointer(); return false; } - mLedger = Ledger::pointer(ledger); - mLedger->setAcquiring(); mHaveBase = true; + if (!mLedger->getTransHash()) mHaveTransactions = true; + if (!mLedger->getAccountHash()) mHaveState = true; + mLedger->setAcquiring(); return true; }