From 8ad5ff957715c9921f8063fff492ac757c49af17 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 26 Apr 2012 18:39:28 -0700 Subject: [PATCH] writeBack(lepCREATE) bugfix. --- src/LedgerNode.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/LedgerNode.cpp b/src/LedgerNode.cpp index 0669ca8c7..8fd1d2d5a 100644 --- a/src/LedgerNode.cpp +++ b/src/LedgerNode.cpp @@ -11,17 +11,34 @@ LedgerStateParms Ledger::writeBack(LedgerStateParms parms, SerializedLedgerEntry if (!mAccountStateMap->hasItem(entry->getIndex())) { if ((parms & lepCREATE) == 0) + { +#ifdef DEBUG + std::cerr << "writeBack no create" << std::endl; +#endif return lepMISSING; + } create = true; } SHAMapItem::pointer item = boost::make_shared(entry->getIndex()); entry->add(item->peekSerializer()); - if (!mAccountStateMap->updateGiveItem(item, false)) - return lepERROR; + if (create) + { + if(!mAccountStateMap->addGiveItem(item, false)) + { + assert(false); + return lepERROR; + } + return lepCREATED; + } - return create ? lepCREATED : lepOKAY; + if(!mAccountStateMap->updateGiveItem(item, false)) + { + assert(false); + return lepERROR; + } + return lepOKAY; } SerializedLedgerEntry::pointer Ledger::getASNode(LedgerStateParms& parms, const uint256& nodeID,