Browse Source

Merge #10521: Limit variable scope

90593ed92 Limit variable scope (practicalswift)

Tree-SHA512: 4719e303688a31aefbe1d239e86b21dd3c2045524e08bd628c6ba0c6c2a97de14d04305b9beafe0b1dcde7229793e6663168953f192e88ed409be5c30fd2a9a9
0.15
Pieter Wuille 8 years ago
parent
commit
76f268b9bd
No known key found for this signature in database
GPG Key ID: A636E97631F767E0
  1. 3
      src/crypto/aes.cpp
  2. 3
      src/policy/fees.cpp
  3. 3
      src/qt/coincontroltreewidget.cpp
  4. 3
      src/qt/recentrequeststablemodel.cpp
  5. 7
      src/qt/trafficgraphwidget.cpp
  6. 6
      src/rpc/mining.cpp
  7. 2
      src/rpc/rawtransaction.cpp
  8. 3
      src/script/sign.cpp
  9. 4
      src/test/checkqueue_tests.cpp
  10. 2
      src/wallet/db.cpp
  11. 2
      src/wallet/wallet.cpp

3
src/crypto/aes.cpp

@ -112,7 +112,6 @@ static int CBCEncrypt(const T& enc, const unsigned char iv[AES_BLOCKSIZE], const
template <typename T> template <typename T>
static int CBCDecrypt(const T& dec, const unsigned char iv[AES_BLOCKSIZE], const unsigned char* data, int size, bool pad, unsigned char* out) static int CBCDecrypt(const T& dec, const unsigned char iv[AES_BLOCKSIZE], const unsigned char* data, int size, bool pad, unsigned char* out)
{ {
unsigned char padsize = 0;
int written = 0; int written = 0;
bool fail = false; bool fail = false;
const unsigned char* prev = iv; const unsigned char* prev = iv;
@ -136,7 +135,7 @@ static int CBCDecrypt(const T& dec, const unsigned char iv[AES_BLOCKSIZE], const
if (pad) { if (pad) {
// If used, padding size is the value of the last decrypted byte. For // If used, padding size is the value of the last decrypted byte. For
// it to be valid, It must be between 1 and AES_BLOCKSIZE. // it to be valid, It must be between 1 and AES_BLOCKSIZE.
padsize = *--out; unsigned char padsize = *--out;
fail = !padsize | (padsize > AES_BLOCKSIZE); fail = !padsize | (padsize > AES_BLOCKSIZE);
// If not well-formed, treat it as though there's no padding. // If not well-formed, treat it as though there's no padding.

3
src/policy/fees.cpp

@ -855,13 +855,13 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
try { try {
LOCK(cs_feeEstimator); LOCK(cs_feeEstimator);
int nVersionRequired, nVersionThatWrote; int nVersionRequired, nVersionThatWrote;
unsigned int nFileBestSeenHeight, nFileHistoricalFirst, nFileHistoricalBest;
filein >> nVersionRequired >> nVersionThatWrote; filein >> nVersionRequired >> nVersionThatWrote;
if (nVersionRequired > CLIENT_VERSION) if (nVersionRequired > CLIENT_VERSION)
return error("CBlockPolicyEstimator::Read(): up-version (%d) fee estimate file", nVersionRequired); return error("CBlockPolicyEstimator::Read(): up-version (%d) fee estimate file", nVersionRequired);
// Read fee estimates file into temporary variables so existing data // Read fee estimates file into temporary variables so existing data
// structures aren't corrupted if there is an exception. // structures aren't corrupted if there is an exception.
unsigned int nFileBestSeenHeight;
filein >> nFileBestSeenHeight; filein >> nFileBestSeenHeight;
if (nVersionThatWrote < 149900) { if (nVersionThatWrote < 149900) {
@ -890,6 +890,7 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
} }
} }
else { // nVersionThatWrote >= 149900 else { // nVersionThatWrote >= 149900
unsigned int nFileHistoricalFirst, nFileHistoricalBest;
filein >> nFileHistoricalFirst >> nFileHistoricalBest; filein >> nFileHistoricalFirst >> nFileHistoricalBest;
if (nFileHistoricalFirst > nFileHistoricalBest || nFileHistoricalBest > nFileBestSeenHeight) { if (nFileHistoricalFirst > nFileHistoricalBest || nFileHistoricalBest > nFileBestSeenHeight) {
throw std::runtime_error("Corrupt estimates file. Historical block range for estimates is invalid"); throw std::runtime_error("Corrupt estimates file. Historical block range for estimates is invalid");

3
src/qt/coincontroltreewidget.cpp

@ -16,10 +16,11 @@ void CoinControlTreeWidget::keyPressEvent(QKeyEvent *event)
if (event->key() == Qt::Key_Space) // press spacebar -> select checkbox if (event->key() == Qt::Key_Space) // press spacebar -> select checkbox
{ {
event->ignore(); event->ignore();
if (this->currentItem()) {
int COLUMN_CHECKBOX = 0; int COLUMN_CHECKBOX = 0;
if(this->currentItem())
this->currentItem()->setCheckState(COLUMN_CHECKBOX, ((this->currentItem()->checkState(COLUMN_CHECKBOX) == Qt::Checked) ? Qt::Unchecked : Qt::Checked)); this->currentItem()->setCheckState(COLUMN_CHECKBOX, ((this->currentItem()->checkState(COLUMN_CHECKBOX) == Qt::Checked) ? Qt::Unchecked : Qt::Checked));
} }
}
else if (event->key() == Qt::Key_Escape) // press esc -> close dialog else if (event->key() == Qt::Key_Escape) // press esc -> close dialog
{ {
event->ignore(); event->ignore();

3
src/qt/recentrequeststablemodel.cpp

@ -55,10 +55,9 @@ QVariant RecentRequestsTableModel::data(const QModelIndex &index, int role) cons
if(!index.isValid() || index.row() >= list.length()) if(!index.isValid() || index.row() >= list.length())
return QVariant(); return QVariant();
const RecentRequestEntry *rec = &list[index.row()];
if(role == Qt::DisplayRole || role == Qt::EditRole) if(role == Qt::DisplayRole || role == Qt::EditRole)
{ {
const RecentRequestEntry *rec = &list[index.row()];
switch(index.column()) switch(index.column())
{ {
case Date: case Date:

7
src/qt/trafficgraphwidget.cpp

@ -47,13 +47,14 @@ int TrafficGraphWidget::getGraphRangeMins() const
void TrafficGraphWidget::paintPath(QPainterPath &path, QQueue<float> &samples) void TrafficGraphWidget::paintPath(QPainterPath &path, QQueue<float> &samples)
{ {
int h = height() - YMARGIN * 2, w = width() - XMARGIN * 2; int sampleCount = samples.size();
int sampleCount = samples.size(), x = XMARGIN + w, y;
if(sampleCount > 0) { if(sampleCount > 0) {
int h = height() - YMARGIN * 2, w = width() - XMARGIN * 2;
int x = XMARGIN + w;
path.moveTo(x, YMARGIN + h); path.moveTo(x, YMARGIN + h);
for(int i = 0; i < sampleCount; ++i) { for(int i = 0; i < sampleCount; ++i) {
x = XMARGIN + w - w * i / DESIRED_SAMPLES; x = XMARGIN + w - w * i / DESIRED_SAMPLES;
y = YMARGIN + h - (int)(h * samples.at(i) / fMax); int y = YMARGIN + h - (int)(h * samples.at(i) / fMax);
path.lineTo(x, y); path.lineTo(x, y);
} }
path.lineTo(x, YMARGIN + h); path.lineTo(x, YMARGIN + h);

6
src/rpc/mining.cpp

@ -96,15 +96,13 @@ UniValue getnetworkhashps(const JSONRPCRequest& request)
UniValue generateBlocks(std::shared_ptr<CReserveScript> coinbaseScript, int nGenerate, uint64_t nMaxTries, bool keepScript) UniValue generateBlocks(std::shared_ptr<CReserveScript> coinbaseScript, int nGenerate, uint64_t nMaxTries, bool keepScript)
{ {
static const int nInnerLoopCount = 0x10000; static const int nInnerLoopCount = 0x10000;
int nHeightStart = 0;
int nHeightEnd = 0; int nHeightEnd = 0;
int nHeight = 0; int nHeight = 0;
{ // Don't keep cs_main locked { // Don't keep cs_main locked
LOCK(cs_main); LOCK(cs_main);
nHeightStart = chainActive.Height(); nHeight = chainActive.Height();
nHeight = nHeightStart; nHeightEnd = nHeight+nGenerate;
nHeightEnd = nHeightStart+nGenerate;
} }
unsigned int nExtraNonce = 0; unsigned int nExtraNonce = 0;
UniValue blockHashes(UniValue::VARR); UniValue blockHashes(UniValue::VARR);

2
src/rpc/rawtransaction.cpp

@ -852,7 +852,6 @@ UniValue sendrawtransaction(const JSONRPCRequest& request)
CTransactionRef tx(MakeTransactionRef(std::move(mtx))); CTransactionRef tx(MakeTransactionRef(std::move(mtx)));
const uint256& hashTx = tx->GetHash(); const uint256& hashTx = tx->GetHash();
bool fLimitFree = true;
CAmount nMaxRawTxFee = maxTxFee; CAmount nMaxRawTxFee = maxTxFee;
if (request.params.size() > 1 && request.params[1].get_bool()) if (request.params.size() > 1 && request.params[1].get_bool())
nMaxRawTxFee = 0; nMaxRawTxFee = 0;
@ -868,6 +867,7 @@ UniValue sendrawtransaction(const JSONRPCRequest& request)
// push to local node and sync with wallets // push to local node and sync with wallets
CValidationState state; CValidationState state;
bool fMissingInputs; bool fMissingInputs;
bool fLimitFree = true;
if (!AcceptToMemoryPool(mempool, state, std::move(tx), fLimitFree, &fMissingInputs, NULL, false, nMaxRawTxFee)) { if (!AcceptToMemoryPool(mempool, state, std::move(tx), fLimitFree, &fMissingInputs, NULL, false, nMaxRawTxFee)) {
if (state.IsInvalid()) { if (state.IsInvalid()) {
throw JSONRPCError(RPC_TRANSACTION_REJECTED, strprintf("%i: %s", state.GetRejectCode(), state.GetRejectReason())); throw JSONRPCError(RPC_TRANSACTION_REJECTED, strprintf("%i: %s", state.GetRejectCode(), state.GetRejectReason()));

3
src/script/sign.cpp

@ -141,10 +141,9 @@ static CScript PushAll(const std::vector<valtype>& values)
bool ProduceSignature(const BaseSignatureCreator& creator, const CScript& fromPubKey, SignatureData& sigdata) bool ProduceSignature(const BaseSignatureCreator& creator, const CScript& fromPubKey, SignatureData& sigdata)
{ {
CScript script = fromPubKey; CScript script = fromPubKey;
bool solved = true;
std::vector<valtype> result; std::vector<valtype> result;
txnouttype whichType; txnouttype whichType;
solved = SignStep(creator, script, result, whichType, SIGVERSION_BASE); bool solved = SignStep(creator, script, result, whichType, SIGVERSION_BASE);
bool P2SH = false; bool P2SH = false;
CScript subscript; CScript subscript;
sigdata.scriptWitness.stack.clear(); sigdata.scriptWitness.stack.clear();

4
src/test/checkqueue_tests.cpp

@ -402,12 +402,12 @@ BOOST_AUTO_TEST_CASE(test_CheckQueueControl_Locks)
{ {
boost::thread_group tg; boost::thread_group tg;
std::mutex m; std::mutex m;
std::condition_variable cv;
{
bool has_lock {false}; bool has_lock {false};
bool has_tried {false}; bool has_tried {false};
bool done {false}; bool done {false};
bool done_ack {false}; bool done_ack {false};
std::condition_variable cv;
{
std::unique_lock<std::mutex> l(m); std::unique_lock<std::mutex> l(m);
tg.create_thread([&]{ tg.create_thread([&]{
CCheckQueueControl<FakeCheck> control(queue.get()); CCheckQueueControl<FakeCheck> control(queue.get());

2
src/wallet/db.cpp

@ -360,7 +360,6 @@ void CDBEnv::CheckpointLSN(const std::string& strFile)
CDB::CDB(CWalletDBWrapper& dbw, const char* pszMode, bool fFlushOnCloseIn) : pdb(NULL), activeTxn(NULL) CDB::CDB(CWalletDBWrapper& dbw, const char* pszMode, bool fFlushOnCloseIn) : pdb(NULL), activeTxn(NULL)
{ {
int ret;
fReadOnly = (!strchr(pszMode, '+') && !strchr(pszMode, 'w')); fReadOnly = (!strchr(pszMode, '+') && !strchr(pszMode, 'w'));
fFlushOnClose = fFlushOnCloseIn; fFlushOnClose = fFlushOnCloseIn;
env = dbw.env; env = dbw.env;
@ -383,6 +382,7 @@ CDB::CDB(CWalletDBWrapper& dbw, const char* pszMode, bool fFlushOnCloseIn) : pdb
++env->mapFileUseCount[strFile]; ++env->mapFileUseCount[strFile];
pdb = env->mapDb[strFile]; pdb = env->mapDb[strFile];
if (pdb == NULL) { if (pdb == NULL) {
int ret;
pdb = new Db(env->dbenv, 0); pdb = new Db(env->dbenv, 0);
bool fMockDb = env->IsMock(); bool fMockDb = env->IsMock();

2
src/wallet/wallet.cpp

@ -3188,10 +3188,10 @@ void CWallet::ReturnKey(int64_t nIndex)
bool CWallet::GetKeyFromPool(CPubKey& result, bool internal) bool CWallet::GetKeyFromPool(CPubKey& result, bool internal)
{ {
int64_t nIndex = 0;
CKeyPool keypool; CKeyPool keypool;
{ {
LOCK(cs_wallet); LOCK(cs_wallet);
int64_t nIndex = 0;
ReserveKeyFromKeyPool(nIndex, keypool, internal); ReserveKeyFromKeyPool(nIndex, keypool, internal);
if (nIndex == -1) if (nIndex == -1)
{ {

Loading…
Cancel
Save