diff --git a/src/cpp/ripple/HashedObject.cpp b/src/cpp/ripple/HashedObject.cpp index 87481802ba..6dd34b6ef2 100644 --- a/src/cpp/ripple/HashedObject.cpp +++ b/src/cpp/ripple/HashedObject.cpp @@ -113,7 +113,6 @@ void HashedObjectStore::bulkWrite() default: type = "U"; } - pSt.reset(); pSt.bind(1, it->getHash().GetHex()); pSt.bind(2, type); pSt.bind(3, it->getIndex()); @@ -124,6 +123,7 @@ void HashedObjectStore::bulkWrite() cLog(lsFATAL) << "Error saving hashed object " << ret; assert(false); } + pSt.reset(); } db->executeSQL("END TRANSACTION;"); @@ -186,12 +186,12 @@ HashedObject::pointer HashedObjectStore::retrieve(const uint256& hash) static SqliteStatement pSt(theApp->getHashNodeDB()->getDB()->getSqliteDB(), "SELECT ObjType,LedgerIndex,Object FROM CommittedObjects WHERE Hash = ?;"); - pSt.reset(); pSt.bind(1, hash.GetHex()); int ret = pSt.step(); if (pSt.isDone(ret)) { + pSt.reset(); mNegativeCache.add(hash); cLog(lsTRACE) << "HOS: " << hash <<" fetch: not in db"; return obj; @@ -200,6 +200,7 @@ HashedObject::pointer HashedObjectStore::retrieve(const uint256& hash) type = pSt.peekString(0); index = pSt.getUInt32(1); pSt.getBlob(2).swap(data); + pSt.reset(); } #else diff --git a/src/cpp/ripple/Ledger.cpp b/src/cpp/ripple/Ledger.cpp index 5404264202..0ca0b7d93c 100644 --- a/src/cpp/ripple/Ledger.cpp +++ b/src/cpp/ripple/Ledger.cpp @@ -548,9 +548,9 @@ Ledger::pointer Ledger::loadByIndex(uint32 ledgerIndex) "ClosingTime,PrevClosingTime,CloseTimeRes,CloseFlags,LedgerSeq" " from Ledgers WHERE LedgerSeq = ?;"); - pSt.reset(); pSt.bind(1, ledgerIndex); ledger = getSQL1(&pSt); + pSt.reset(); } if (ledger) Ledger::getSQL2(ledger); @@ -569,9 +569,9 @@ Ledger::pointer Ledger::loadByHash(const uint256& ledgerHash) "ClosingTime,PrevClosingTime,CloseTimeRes,CloseFlags,LedgerSeq" " from Ledgers WHERE LedgerHash = ?;"); - pSt.reset(); pSt.bind(1, ledgerHash.GetHex()); ledger = getSQL1(&pSt); + pSt.reset(); } if (ledger) { @@ -731,17 +731,18 @@ bool Ledger::getHashesByIndex(uint32 ledgerIndex, uint256& ledgerHash, uint256& static SqliteStatement pSt(con->getDB()->getSqliteDB(), "SELECT LedgerHash,PrevHash FROM Ledgers INDEXED BY SeqLedger Where LedgerSeq = ?;"); - pSt.reset(); pSt.bind(1, ledgerIndex); int ret = pSt.step(); if (pSt.isDone(ret)) { + pSt.reset(); cLog(lsTRACE) << "Don't have ledger " << ledgerIndex; return false; } if (!pSt.isRow(ret)) { + pSt.reset(); assert(false); cLog(lsFATAL) << "Unexpected statement result " << ret; return false; @@ -749,6 +750,7 @@ bool Ledger::getHashesByIndex(uint32 ledgerIndex, uint256& ledgerHash, uint256& ledgerHash.SetHex(pSt.peekString(0), true); parentHash.SetHex(pSt.peekString(1), true); + pSt.reset(); return true;