mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-21 15:50:07 +01:00
Merge branch '0.4.x' into 0.5.x
Conflicts: src/main.cpp
This commit is contained in:
@@ -270,7 +270,7 @@ public:
|
||||
|
||||
bool IsValid() const
|
||||
{
|
||||
int nExpectedSize = 20;
|
||||
unsigned int nExpectedSize = 20;
|
||||
bool fExpectTestNet = false;
|
||||
switch(nVersion)
|
||||
{
|
||||
|
||||
@@ -77,7 +77,8 @@ public:
|
||||
BN_clear_free(this);
|
||||
}
|
||||
|
||||
CBigNum(char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
|
||||
//CBigNum(char n) is not portable. Use 'signed char' or 'unsigned char'.
|
||||
CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
|
||||
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
|
||||
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
|
||||
CBigNum(long n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
|
||||
@@ -295,7 +296,7 @@ public:
|
||||
psz++;
|
||||
|
||||
// hex string to bignum
|
||||
static char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
|
||||
static signed char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
|
||||
*this = 0;
|
||||
while (isxdigit(*psz))
|
||||
{
|
||||
|
||||
@@ -145,7 +145,7 @@ Value help(const Array& params, bool fHelp)
|
||||
// Help text is returned in an exception
|
||||
string strHelp = string(e.what());
|
||||
if (strCommand == "")
|
||||
if (strHelp.find('\n') != -1)
|
||||
if (strHelp.find('\n') != string::npos)
|
||||
strHelp = strHelp.substr(0, strHelp.find('\n'));
|
||||
strRet += strHelp + "\n";
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v
|
||||
i = EVP_BytesToKey(EVP_aes_256_cbc(), EVP_sha512(), &chSalt[0],
|
||||
(unsigned char *)&strKeyData[0], strKeyData.size(), nRounds, chKey, chIV);
|
||||
|
||||
if (i != WALLET_CRYPTO_KEY_SIZE)
|
||||
if (i != (int)WALLET_CRYPTO_KEY_SIZE)
|
||||
{
|
||||
memset(&chKey, 0, sizeof chKey);
|
||||
memset(&chIV, 0, sizeof chIV);
|
||||
|
||||
@@ -156,13 +156,13 @@ int RecvUntil(SOCKET hSocket, const char* psz1, const char* psz2=NULL, const cha
|
||||
if (!RecvLineIRC(hSocket, strLine))
|
||||
return 0;
|
||||
printf("IRC %s\n", strLine.c_str());
|
||||
if (psz1 && strLine.find(psz1) != -1)
|
||||
if (psz1 && strLine.find(psz1) != string::npos)
|
||||
return 1;
|
||||
if (psz2 && strLine.find(psz2) != -1)
|
||||
if (psz2 && strLine.find(psz2) != string::npos)
|
||||
return 2;
|
||||
if (psz3 && strLine.find(psz3) != -1)
|
||||
if (psz3 && strLine.find(psz3) != string::npos)
|
||||
return 3;
|
||||
if (psz4 && strLine.find(psz4) != -1)
|
||||
if (psz4 && strLine.find(psz4) != string::npos)
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ public:
|
||||
|
||||
CPrivKey GetPrivKey() const
|
||||
{
|
||||
unsigned int nSize = i2d_ECPrivateKey(pkey, NULL);
|
||||
int nSize = i2d_ECPrivateKey(pkey, NULL);
|
||||
if (!nSize)
|
||||
throw key_error("CKey::GetPrivKey() : i2d_ECPrivateKey failed");
|
||||
CPrivKey vchPrivKey(nSize, 0);
|
||||
@@ -283,7 +283,7 @@ public:
|
||||
|
||||
std::vector<unsigned char> GetPubKey() const
|
||||
{
|
||||
unsigned int nSize = i2o_ECPublicKey(pkey, NULL);
|
||||
int nSize = i2o_ECPublicKey(pkey, NULL);
|
||||
if (!nSize)
|
||||
throw key_error("CKey::GetPubKey() : i2o_ECPublicKey failed");
|
||||
std::vector<unsigned char> vchPubKey(nSize, 0);
|
||||
|
||||
49
src/main.cpp
49
src/main.cpp
@@ -396,7 +396,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
|
||||
|
||||
// Check for conflicts with in-memory transactions
|
||||
CTransaction* ptxOld = NULL;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
COutPoint outpoint = vin[i].prevout;
|
||||
if (mapNextTx.count(outpoint))
|
||||
@@ -412,7 +412,7 @@ bool CTransaction::AcceptToMemoryPool(CTxDB& txdb, bool fCheckInputs, bool* pfMi
|
||||
return false;
|
||||
if (!IsNewerThan(*ptxOld))
|
||||
return false;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
COutPoint outpoint = vin[i].prevout;
|
||||
if (!mapNextTx.count(outpoint) || mapNextTx[outpoint].ptx != ptxOld)
|
||||
@@ -518,7 +518,7 @@ bool CTransaction::AddToMemoryPoolUnchecked()
|
||||
{
|
||||
uint256 hash = GetHash();
|
||||
mapTransactions[hash] = *this;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
mapNextTx[vin[i].prevout] = CInPoint(&mapTransactions[hash], i);
|
||||
nTransactionsUpdated++;
|
||||
}
|
||||
@@ -897,7 +897,7 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes
|
||||
if (IsCoinBase())
|
||||
return true; // Coinbase transactions have no inputs to fetch.
|
||||
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
COutPoint prevout = vin[i].prevout;
|
||||
if (inputsRet.count(prevout.hash))
|
||||
@@ -942,7 +942,7 @@ bool CTransaction::FetchInputs(CTxDB& txdb, const map<uint256, CTxIndex>& mapTes
|
||||
}
|
||||
|
||||
// Make sure all prevout.n's are valid:
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
const COutPoint prevout = vin[i].prevout;
|
||||
assert(inputsRet.count(prevout.hash) != 0);
|
||||
@@ -979,7 +979,7 @@ int64 CTransaction::GetValueIn(const MapPrevTx& inputs) const
|
||||
return 0;
|
||||
|
||||
int64 nResult = 0;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
nResult += GetOutputFor(vin[i], inputs).nValue;
|
||||
}
|
||||
@@ -993,7 +993,7 @@ int CTransaction::GetP2SHSigOpCount(const MapPrevTx& inputs) const
|
||||
return 0;
|
||||
|
||||
int nSigOps = 0;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
const CTxOut& prevout = GetOutputFor(vin[i], inputs);
|
||||
if (prevout.scriptPubKey.IsPayToScriptHash())
|
||||
@@ -1014,7 +1014,7 @@ bool CTransaction::ConnectInputs(MapPrevTx inputs,
|
||||
{
|
||||
int64 nValueIn = 0;
|
||||
int64 nFees = 0;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
COutPoint prevout = vin[i].prevout;
|
||||
assert(inputs.count(prevout.hash) > 0);
|
||||
@@ -1093,7 +1093,7 @@ bool CTransaction::ClientConnectInputs()
|
||||
CRITICAL_BLOCK(cs_mapTransactions)
|
||||
{
|
||||
int64 nValueIn = 0;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
// Get prev tx from single transactions in memory
|
||||
COutPoint prevout = vin[i].prevout;
|
||||
@@ -1304,7 +1304,7 @@ bool static Reorganize(CTxDB& txdb, CBlockIndex* pindexNew)
|
||||
|
||||
// Connect longer branch
|
||||
vector<CTransaction> vDelete;
|
||||
for (int i = 0; i < vConnect.size(); i++)
|
||||
for (unsigned int i = 0; i < vConnect.size(); i++)
|
||||
{
|
||||
CBlockIndex* pindex = vConnect[i];
|
||||
CBlock block;
|
||||
@@ -1483,7 +1483,7 @@ bool CBlock::CheckBlock() const
|
||||
// First transaction must be coinbase, the rest must not be
|
||||
if (vtx.empty() || !vtx[0].IsCoinBase())
|
||||
return DoS(100, error("CheckBlock() : first tx is not coinbase"));
|
||||
for (int i = 1; i < vtx.size(); i++)
|
||||
for (unsigned int i = 1; i < vtx.size(); i++)
|
||||
if (vtx[i].IsCoinBase())
|
||||
return DoS(100, error("CheckBlock() : more than one coinbase"));
|
||||
|
||||
@@ -1613,7 +1613,7 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock)
|
||||
// Recursively process any orphan blocks that depended on this one
|
||||
vector<uint256> vWorkQueue;
|
||||
vWorkQueue.push_back(hash);
|
||||
for (int i = 0; i < vWorkQueue.size(); i++)
|
||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
||||
{
|
||||
uint256 hashPrev = vWorkQueue[i];
|
||||
for (multimap<uint256, CBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev);
|
||||
@@ -1837,7 +1837,7 @@ void PrintBlockTree()
|
||||
|
||||
// put the main timechain first
|
||||
vector<CBlockIndex*>& vNext = mapNext[pindex];
|
||||
for (int i = 0; i < vNext.size(); i++)
|
||||
for (unsigned int i = 0; i < vNext.size(); i++)
|
||||
{
|
||||
if (vNext[i]->pnext)
|
||||
{
|
||||
@@ -1847,7 +1847,7 @@ void PrintBlockTree()
|
||||
}
|
||||
|
||||
// iterate children
|
||||
for (int i = 0; i < vNext.size(); i++)
|
||||
for (unsigned int i = 0; i < vNext.size(); i++)
|
||||
vStack.push_back(make_pair(nCol+i, vNext[i]));
|
||||
}
|
||||
}
|
||||
@@ -1977,7 +1977,18 @@ bool static AlreadyHave(CTxDB& txdb, const CInv& inv)
|
||||
{
|
||||
switch (inv.type)
|
||||
{
|
||||
case MSG_TX: return mapTransactions.count(inv.hash) || mapOrphanTransactions.count(inv.hash) || txdb.ContainsTx(inv.hash);
|
||||
case MSG_TX:
|
||||
{
|
||||
bool txInMap = false;
|
||||
CRITICAL_BLOCK(cs_mapTransactions)
|
||||
{
|
||||
txInMap = (mapTransactions.count(inv.hash) != 0);
|
||||
}
|
||||
return txInMap ||
|
||||
mapOrphanTransactions.count(inv.hash) ||
|
||||
txdb.ContainsTx(inv.hash);
|
||||
}
|
||||
|
||||
case MSG_BLOCK: return mapBlockIndex.count(inv.hash) || mapOrphanBlocks.count(inv.hash);
|
||||
}
|
||||
// Don't know what it is, just say we already got one
|
||||
@@ -2363,7 +2374,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
||||
vWorkQueue.push_back(inv.hash);
|
||||
|
||||
// Recursively process any orphan transactions that depended on this one
|
||||
for (int i = 0; i < vWorkQueue.size(); i++)
|
||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
||||
{
|
||||
uint256 hashPrev = vWorkQueue[i];
|
||||
for (multimap<uint256, CDataStream*>::iterator mi = mapOrphanTransactionsByPrev.lower_bound(hashPrev);
|
||||
@@ -2648,7 +2659,7 @@ bool ProcessMessages(CNode* pfrom)
|
||||
|
||||
bool SendMessages(CNode* pto, bool fSendTrickle)
|
||||
{
|
||||
CRITICAL_BLOCK(cs_main)
|
||||
TRY_CRITICAL_BLOCK(cs_main)
|
||||
{
|
||||
// Don't send anything until we get their version message
|
||||
if (pto->nVersion == 0)
|
||||
@@ -3152,7 +3163,7 @@ void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash
|
||||
FormatHashBlocks(&tmp.hash1, sizeof(tmp.hash1));
|
||||
|
||||
// Byte swap all the input buffer
|
||||
for (int i = 0; i < sizeof(tmp)/4; i++)
|
||||
for (unsigned int i = 0; i < sizeof(tmp)/4; i++)
|
||||
((unsigned int*)&tmp)[i] = ByteReverse(((unsigned int*)&tmp)[i]);
|
||||
|
||||
// Precalc the first half of the first hash, which stays constant
|
||||
@@ -3273,7 +3284,7 @@ void static BitcoinMiner(CWallet *pwallet)
|
||||
// Check if something found
|
||||
if (nNonceFound != -1)
|
||||
{
|
||||
for (int i = 0; i < sizeof(hash)/4; i++)
|
||||
for (unsigned int i = 0; i < sizeof(hash)/4; i++)
|
||||
((unsigned int*)&hash)[i] = ByteReverse(((unsigned int*)&hash)[i]);
|
||||
|
||||
if (hash <= hashTarget)
|
||||
|
||||
12
src/main.h
12
src/main.h
@@ -461,13 +461,13 @@ public:
|
||||
{
|
||||
if (vin.size() != old.vin.size())
|
||||
return false;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
if (vin[i].prevout != old.vin[i].prevout)
|
||||
return false;
|
||||
|
||||
bool fNewer = false;
|
||||
unsigned int nLowest = UINT_MAX;
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
{
|
||||
if (vin[i].nSequence != old.vin[i].nSequence)
|
||||
{
|
||||
@@ -642,9 +642,9 @@ public:
|
||||
vin.size(),
|
||||
vout.size(),
|
||||
nLockTime);
|
||||
for (int i = 0; i < vin.size(); i++)
|
||||
for (unsigned int i = 0; i < vin.size(); i++)
|
||||
str += " " + vin[i].ToString() + "\n";
|
||||
for (int i = 0; i < vout.size(); i++)
|
||||
for (unsigned int i = 0; i < vout.size(); i++)
|
||||
str += " " + vout[i].ToString() + "\n";
|
||||
return str;
|
||||
}
|
||||
@@ -1022,13 +1022,13 @@ public:
|
||||
hashMerkleRoot.ToString().substr(0,10).c_str(),
|
||||
nTime, nBits, nNonce,
|
||||
vtx.size());
|
||||
for (int i = 0; i < vtx.size(); i++)
|
||||
for (unsigned int i = 0; i < vtx.size(); i++)
|
||||
{
|
||||
printf(" ");
|
||||
vtx[i].print();
|
||||
}
|
||||
printf(" vMerkleTree: ");
|
||||
for (int i = 0; i < vMerkleTree.size(); i++)
|
||||
for (unsigned int i = 0; i < vMerkleTree.size(); i++)
|
||||
printf("%s ", vMerkleTree[i].ToString().substr(0,10).c_str());
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
10
src/net.cpp
10
src/net.cpp
@@ -316,14 +316,14 @@ bool GetMyExternalIP2(const CAddress& addrConnect, const char* pszGet, const cha
|
||||
}
|
||||
if (pszKeyword == NULL)
|
||||
break;
|
||||
if (strLine.find(pszKeyword) != -1)
|
||||
if (strLine.find(pszKeyword) != string::npos)
|
||||
{
|
||||
strLine = strLine.substr(strLine.find(pszKeyword) + strlen(pszKeyword));
|
||||
break;
|
||||
}
|
||||
}
|
||||
closesocket(hSocket);
|
||||
if (strLine.find("<") != -1)
|
||||
if (strLine.find("<") != string::npos)
|
||||
strLine = strLine.substr(0, strLine.find("<"));
|
||||
strLine = strLine.substr(strspn(strLine.c_str(), " \t\n\r"));
|
||||
while (strLine.size() > 0 && isspace(strLine[strLine.size()-1]))
|
||||
@@ -915,7 +915,7 @@ void ThreadSocketHandler2(void* parg)
|
||||
if (hSocketMax > -1)
|
||||
{
|
||||
printf("socket select error %d\n", nErr);
|
||||
for (int i = 0; i <= hSocketMax; i++)
|
||||
for (unsigned int i = 0; i <= hSocketMax; i++)
|
||||
FD_SET(i, &fdsetRecv);
|
||||
}
|
||||
FD_ZERO(&fdsetSend);
|
||||
@@ -1303,7 +1303,7 @@ void ThreadDNSAddressSeed2(void* parg)
|
||||
{
|
||||
printf("Loading addresses from DNS seeds (could take a while)\n");
|
||||
|
||||
for (int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) {
|
||||
for (unsigned int seed_idx = 0; seed_idx < ARRAYLEN(strDNSSeed); seed_idx++) {
|
||||
vector<CAddress> vaddr;
|
||||
if (Lookup(strDNSSeed[seed_idx], vaddr, NODE_NETWORK, -1, true))
|
||||
{
|
||||
@@ -1520,7 +1520,7 @@ void ThreadOpenConnections2(void* parg)
|
||||
|
||||
if (fAddSeeds)
|
||||
{
|
||||
for (int i = 0; i < ARRAYLEN(pnSeed); i++)
|
||||
for (unsigned int i = 0; i < ARRAYLEN(pnSeed); i++)
|
||||
{
|
||||
// It'll only connect to one or two seed nodes because once it connects,
|
||||
// it'll get a pile of addresses with newer timestamps.
|
||||
|
||||
@@ -111,7 +111,7 @@ public:
|
||||
int64 nLastRecv;
|
||||
int64 nLastSendEmpty;
|
||||
int64 nTimeConnected;
|
||||
unsigned int nHeaderStart;
|
||||
signed int nHeaderStart;
|
||||
unsigned int nMessageStart;
|
||||
CAddress addr;
|
||||
int nVersion;
|
||||
|
||||
@@ -270,7 +270,7 @@ CInv::CInv(int typeIn, const uint256& hashIn)
|
||||
|
||||
CInv::CInv(const std::string& strType, const uint256& hashIn)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
for (i = 1; i < ARRAYLEN(ppszTypeName); i++)
|
||||
{
|
||||
if (strType == ppszTypeName[i])
|
||||
|
||||
@@ -402,7 +402,8 @@ public:
|
||||
}
|
||||
|
||||
|
||||
explicit CScript(char b) { operator<<(b); }
|
||||
//explicit CScript(char b) is not portable. Use 'signed char' or 'unsigned char'.
|
||||
explicit CScript(signed char b) { operator<<(b); }
|
||||
explicit CScript(short b) { operator<<(b); }
|
||||
explicit CScript(int b) { operator<<(b); }
|
||||
explicit CScript(long b) { operator<<(b); }
|
||||
@@ -419,7 +420,8 @@ public:
|
||||
explicit CScript(const std::vector<unsigned char>& b) { operator<<(b); }
|
||||
|
||||
|
||||
CScript& operator<<(char b) { return push_int64(b); }
|
||||
//CScript& operator<<(char b) is not portable. Use 'signed char' or 'unsigned char'.
|
||||
CScript& operator<<(signed char b) { return push_int64(b); }
|
||||
CScript& operator<<(short b) { return push_int64(b); }
|
||||
CScript& operator<<(int b) { return push_int64(b); }
|
||||
CScript& operator<<(long b) { return push_int64(b); }
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "serialize.h"
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -294,7 +295,7 @@ public:
|
||||
std::string GetHex() const
|
||||
{
|
||||
char psz[sizeof(pn)*2 + 1];
|
||||
for (int i = 0; i < sizeof(pn); i++)
|
||||
for (unsigned int i = 0; i < sizeof(pn); i++)
|
||||
sprintf(psz + i*2, "%02x", ((unsigned char*)pn)[sizeof(pn) - i - 1]);
|
||||
return std::string(psz, psz + sizeof(pn)*2);
|
||||
}
|
||||
@@ -313,7 +314,7 @@ public:
|
||||
psz += 2;
|
||||
|
||||
// hex string to uint
|
||||
static char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
|
||||
static unsigned char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 };
|
||||
const char* pbegin = psz;
|
||||
while (phexdigit[(unsigned char)*psz] || *psz == '0')
|
||||
psz++;
|
||||
|
||||
10
src/util.cpp
10
src/util.cpp
@@ -412,14 +412,14 @@ bool ParseMoney(const char* pszIn, int64& nRet)
|
||||
|
||||
vector<unsigned char> ParseHex(const char* psz)
|
||||
{
|
||||
static char phexdigit[256] =
|
||||
static signed char phexdigit[256] =
|
||||
{ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,
|
||||
-1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1
|
||||
-1,0xa,0xb,0xc,0xd,0xe,0xf,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
|
||||
@@ -436,12 +436,12 @@ vector<unsigned char> ParseHex(const char* psz)
|
||||
{
|
||||
while (isspace(*psz))
|
||||
psz++;
|
||||
char c = phexdigit[(unsigned char)*psz++];
|
||||
if (c == (char)-1)
|
||||
signed char c = phexdigit[(unsigned char)*psz++];
|
||||
if (c == (signed char)-1)
|
||||
break;
|
||||
unsigned char n = (c << 4);
|
||||
c = phexdigit[(unsigned char)*psz++];
|
||||
if (c == (char)-1)
|
||||
if (c == (signed char)-1)
|
||||
break;
|
||||
n |= c;
|
||||
vch.push_back(n);
|
||||
|
||||
@@ -514,7 +514,7 @@ void CWalletTx::AddSupportingTransactions(CTxDB& txdb)
|
||||
{
|
||||
map<uint256, const CMerkleTx*> mapWalletPrev;
|
||||
set<uint256> setAlreadyDone;
|
||||
for (int i = 0; i < vWorkQueue.size(); i++)
|
||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
||||
{
|
||||
uint256 hash = vWorkQueue[i];
|
||||
if (setAlreadyDone.count(hash))
|
||||
@@ -612,7 +612,7 @@ void CWallet::ReacceptWalletTransactions()
|
||||
printf("ERROR: ReacceptWalletTransactions() : txindex.vSpent.size() %d != wtx.vout.size() %d\n", txindex.vSpent.size(), wtx.vout.size());
|
||||
continue;
|
||||
}
|
||||
for (int i = 0; i < txindex.vSpent.size(); i++)
|
||||
for (unsigned int i = 0; i < txindex.vSpent.size(); i++)
|
||||
{
|
||||
if (wtx.IsSpent(i))
|
||||
continue;
|
||||
@@ -791,7 +791,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
|
||||
if (nDepth < (pcoin->IsFromMe() ? nConfMine : nConfTheirs))
|
||||
continue;
|
||||
|
||||
for (int i = 0; i < pcoin->vout.size(); i++)
|
||||
for (unsigned int i = 0; i < pcoin->vout.size(); i++)
|
||||
{
|
||||
if (pcoin->IsSpent(i) || !IsMine(pcoin->vout[i]))
|
||||
continue;
|
||||
@@ -824,7 +824,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
|
||||
|
||||
if (nTotalLower == nTargetValue || nTotalLower == nTargetValue + CENT)
|
||||
{
|
||||
for (int i = 0; i < vValue.size(); ++i)
|
||||
for (unsigned int i = 0; i < vValue.size(); ++i)
|
||||
{
|
||||
setCoinsRet.insert(vValue[i].second);
|
||||
nValueRet += vValue[i].first;
|
||||
@@ -857,7 +857,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
|
||||
bool fReachedTarget = false;
|
||||
for (int nPass = 0; nPass < 2 && !fReachedTarget; nPass++)
|
||||
{
|
||||
for (int i = 0; i < vValue.size(); i++)
|
||||
for (unsigned int i = 0; i < vValue.size(); i++)
|
||||
{
|
||||
if (nPass == 0 ? rand() % 2 : !vfIncluded[i])
|
||||
{
|
||||
@@ -886,7 +886,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
|
||||
nValueRet += coinLowestLarger.first;
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < vValue.size(); i++)
|
||||
for (unsigned int i = 0; i < vValue.size(); i++)
|
||||
if (vfBest[i])
|
||||
{
|
||||
setCoinsRet.insert(vValue[i].second);
|
||||
@@ -895,7 +895,7 @@ bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfThe
|
||||
|
||||
//// debug print
|
||||
printf("SelectCoins() best subset: ");
|
||||
for (int i = 0; i < vValue.size(); i++)
|
||||
for (unsigned int i = 0; i < vValue.size(); i++)
|
||||
if (vfBest[i])
|
||||
printf("%s ", FormatMoney(vValue[i].first).c_str());
|
||||
printf("total %s\n", FormatMoney(nBest).c_str());
|
||||
|
||||
@@ -364,7 +364,7 @@ public:
|
||||
bool UpdateSpent(const std::vector<char>& vfNewSpent)
|
||||
{
|
||||
bool fReturn = false;
|
||||
for (int i=0; i < vfNewSpent.size(); i++)
|
||||
for (unsigned int i = 0; i < vfNewSpent.size(); i++)
|
||||
{
|
||||
if (i == vfSpent.size())
|
||||
break;
|
||||
@@ -444,7 +444,7 @@ public:
|
||||
return nAvailableCreditCached;
|
||||
|
||||
int64 nCredit = 0;
|
||||
for (int i = 0; i < vout.size(); i++)
|
||||
for (unsigned int i = 0; i < vout.size(); i++)
|
||||
{
|
||||
if (!IsSpent(i))
|
||||
{
|
||||
@@ -497,7 +497,7 @@ public:
|
||||
std::vector<const CMerkleTx*> vWorkQueue;
|
||||
vWorkQueue.reserve(vtxPrev.size()+1);
|
||||
vWorkQueue.push_back(this);
|
||||
for (int i = 0; i < vWorkQueue.size(); i++)
|
||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
||||
{
|
||||
const CMerkleTx* ptx = vWorkQueue[i];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user