diff --git a/src/cpp/ripple/Transaction.cpp b/src/cpp/ripple/Transaction.cpp index be3c21752..5305c784f 100644 --- a/src/cpp/ripple/Transaction.cpp +++ b/src/cpp/ripple/Transaction.cpp @@ -146,12 +146,13 @@ bool Transaction::save() default: status = TXN_SQL_UNKNOWN; } - std::string exists = boost::str(boost::format("SELECT Status FROM Transactions WHERE TransID = '%s';") - % mTransaction->getTransactionID().GetHex()); + static boost::format selStat("SELECT Status FROM Transactions WHERE TransID = '%s';"); + std::string exists = boost::str(selStat % mTransaction->getTransactionID().GetHex()); Database *db = theApp->getTxnDB()->getDB(); ScopedLock dbLock(theApp->getTxnDB()->getDBLock()); - if (SQL_EXISTS(db, exists)) return false; + if (SQL_EXISTS(db, exists)) + return false; return db->executeSQL(mTransaction->getSQLInsertHeader() + mTransaction->getSQL(getLedger(), status) + ";"); } diff --git a/src/cpp/ripple/utils.h b/src/cpp/ripple/utils.h index 7667df578..c6568d510 100644 --- a/src/cpp/ripple/utils.h +++ b/src/cpp/ripple/utils.h @@ -154,7 +154,8 @@ inline std::string strHex(const uint64 uiHost) inline static std::string sqlEscape(const std::string& strSrc) { - return str(boost::format("X'%s'") % strHex(strSrc)); + static boost::format f("X'%s'"); + return str(f % strHex(strSrc)); } template