mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 03:47:29 -03:00
Replace std::to_string with locale-independent alternative
This commit is contained in:
parent
58c72880ff
commit
d056df033a
19 changed files with 71 additions and 58 deletions
|
@ -20,6 +20,7 @@
|
|||
#include <util/moneystr.h>
|
||||
#include <util/rbf.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <util/system.h>
|
||||
#include <util/translation.h>
|
||||
|
||||
|
@ -357,7 +358,7 @@ static void MutateTxAddOutMultiSig(CMutableTransaction& tx, const std::string& s
|
|||
|
||||
if (required < 1 || required > MAX_PUBKEYS_PER_MULTISIG || numkeys < 1 || numkeys > MAX_PUBKEYS_PER_MULTISIG || numkeys < required)
|
||||
throw std::runtime_error("multisig parameter mismatch. Required " \
|
||||
+ std::to_string(required) + " of " + std::to_string(numkeys) + "signatures.");
|
||||
+ ToString(required) + " of " + ToString(numkeys) + "signatures.");
|
||||
|
||||
// extract and validate PUBKEYs
|
||||
std::vector<CPubKey> pubkeys;
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <net.h>
|
||||
#include <netbase.h>
|
||||
#include <txdb.h> // for -dbcache defaults
|
||||
#include <util/string.h>
|
||||
|
||||
#include <QDebug>
|
||||
#include <QSettings>
|
||||
|
@ -241,7 +242,7 @@ void OptionsModel::SetPruneEnabled(bool prune, bool force)
|
|||
QSettings settings;
|
||||
settings.setValue("bPrune", prune);
|
||||
const int64_t prune_target_mib = PruneGBtoMiB(settings.value("nPruneSize").toInt());
|
||||
std::string prune_val = prune ? std::to_string(prune_target_mib) : "0";
|
||||
std::string prune_val = prune ? ToString(prune_target_mib) : "0";
|
||||
if (force) {
|
||||
m_node.forceSetArg("-prune", prune_val);
|
||||
return;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <sync.h>
|
||||
#include <timedata.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <util/system.h>
|
||||
#include <validation.h>
|
||||
#include <version.h>
|
||||
|
@ -703,7 +704,7 @@ static UniValue getnodeaddresses(const JSONRPCRequest& request)
|
|||
RPCHelpMan{"getnodeaddresses",
|
||||
"\nReturn known addresses which can potentially be used to find new nodes in the network\n",
|
||||
{
|
||||
{"count", RPCArg::Type::NUM, /* default */ "1", "How many addresses to return. Limited to the smaller of " + std::to_string(ADDRMAN_GETADDR_MAX) + " or " + std::to_string(ADDRMAN_GETADDR_MAX_PCT) + "% of all known addresses."},
|
||||
{"count", RPCArg::Type::NUM, /* default */ "1", "How many addresses to return. Limited to the smaller of " + ToString(ADDRMAN_GETADDR_MAX) + " or " + ToString(ADDRMAN_GETADDR_MAX_PCT) + "% of all known addresses."},
|
||||
},
|
||||
RPCResult{
|
||||
RPCResult::Type::ARR, "", "",
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <uint256.h>
|
||||
#include <util/moneystr.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <validation.h>
|
||||
#include <validationinterface.h>
|
||||
|
||||
|
@ -960,7 +961,7 @@ static std::string WriteHDKeypath(std::vector<uint32_t>& keypath)
|
|||
num &= ~0x80000000;
|
||||
}
|
||||
|
||||
keypath_str += std::to_string(num);
|
||||
keypath_str += ToString(num);
|
||||
if (hardened) {
|
||||
keypath_str += "'";
|
||||
}
|
||||
|
|
|
@ -489,7 +489,7 @@ std::string RPCHelpMan::ToString() const
|
|||
if (i == 0) ret += "\nArguments:\n";
|
||||
|
||||
// Push named argument name and description
|
||||
sections.m_sections.emplace_back(std::to_string(i + 1) + ". " + arg.m_name, arg.ToDescriptionString());
|
||||
sections.m_sections.emplace_back(::ToString(i + 1) + ". " + arg.m_name, arg.ToDescriptionString());
|
||||
sections.m_max_pad = std::max(sections.m_max_pad, sections.m_sections.back().m_left.size());
|
||||
|
||||
// Recursively push nested args
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <string>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <util/asmap.h>
|
||||
#include <util/string.h>
|
||||
#include <test/data/asmap.raw.h>
|
||||
|
||||
#include <hash.h>
|
||||
|
@ -266,7 +267,7 @@ BOOST_AUTO_TEST_CASE(addrman_new_collisions)
|
|||
BOOST_CHECK_EQUAL(addrman.size(), 0U);
|
||||
|
||||
for (unsigned int i = 1; i < 18; i++) {
|
||||
CService addr = ResolveService("250.1.1." + std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1." + ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
|
||||
//Test: No collision in new table yet.
|
||||
|
@ -292,7 +293,7 @@ BOOST_AUTO_TEST_CASE(addrman_tried_collisions)
|
|||
BOOST_CHECK_EQUAL(addrman.size(), 0U);
|
||||
|
||||
for (unsigned int i = 1; i < 80; i++) {
|
||||
CService addr = ResolveService("250.1.1." + std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1." + ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
addrman.Good(CAddress(addr, NODE_NONE));
|
||||
|
||||
|
@ -425,7 +426,7 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
|
|||
for (unsigned int i = 1; i < (8 * 256); i++) {
|
||||
int octet1 = i % 256;
|
||||
int octet2 = i >> 8 % 256;
|
||||
std::string strAddr = std::to_string(octet1) + "." + std::to_string(octet2) + ".1.23";
|
||||
std::string strAddr = ToString(octet1) + "." + ToString(octet2) + ".1.23";
|
||||
CAddress addr = CAddress(ResolveService(strAddr), NODE_NONE);
|
||||
|
||||
// Ensure that for all addrs in addrman, isTerrible == false.
|
||||
|
@ -477,8 +478,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_tried_bucket_legacy)
|
|||
std::set<int> buckets;
|
||||
for (int i = 0; i < 255; i++) {
|
||||
CAddrInfo infoi = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1." + std::to_string(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + std::to_string(i)));
|
||||
CAddress(ResolveService("250.1.1." + ToString(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + ToString(i)));
|
||||
int bucket = infoi.GetTriedBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -489,8 +490,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_tried_bucket_legacy)
|
|||
buckets.clear();
|
||||
for (int j = 0; j < 255; j++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("250." + std::to_string(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("250." + std::to_string(j) + ".1.1"));
|
||||
CAddress(ResolveService("250." + ToString(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("250." + ToString(j) + ".1.1"));
|
||||
int bucket = infoj.GetTriedBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -531,8 +532,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket_legacy)
|
|||
std::set<int> buckets;
|
||||
for (int i = 0; i < 255; i++) {
|
||||
CAddrInfo infoi = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1." + std::to_string(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + std::to_string(i)));
|
||||
CAddress(ResolveService("250.1.1." + ToString(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + ToString(i)));
|
||||
int bucket = infoi.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -544,7 +545,7 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket_legacy)
|
|||
for (int j = 0; j < 4 * 255; j++) {
|
||||
CAddrInfo infoj = CAddrInfo(CAddress(
|
||||
ResolveService(
|
||||
std::to_string(250 + (j / 255)) + "." + std::to_string(j % 256) + ".1.1"), NODE_NONE),
|
||||
ToString(250 + (j / 255)) + "." + ToString(j % 256) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("251.4.1.1"));
|
||||
int bucket = infoj.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
|
@ -557,7 +558,7 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket_legacy)
|
|||
for (int p = 0; p < 255; p++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1.1"), NODE_NONE),
|
||||
ResolveIP("250." + std::to_string(p) + ".1.1"));
|
||||
ResolveIP("250." + ToString(p) + ".1.1"));
|
||||
int bucket = infoj.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -610,8 +611,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_tried_bucket)
|
|||
std::set<int> buckets;
|
||||
for (int j = 0; j < 255; j++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("101." + std::to_string(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("101." + std::to_string(j) + ".1.1"));
|
||||
CAddress(ResolveService("101." + ToString(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("101." + ToString(j) + ".1.1"));
|
||||
int bucket = infoj.GetTriedBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -622,8 +623,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_tried_bucket)
|
|||
buckets.clear();
|
||||
for (int j = 0; j < 255; j++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("250." + std::to_string(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("250." + std::to_string(j) + ".1.1"));
|
||||
CAddress(ResolveService("250." + ToString(j) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("250." + ToString(j) + ".1.1"));
|
||||
int bucket = infoj.GetTriedBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -664,8 +665,8 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket)
|
|||
std::set<int> buckets;
|
||||
for (int i = 0; i < 255; i++) {
|
||||
CAddrInfo infoi = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1." + std::to_string(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + std::to_string(i)));
|
||||
CAddress(ResolveService("250.1.1." + ToString(i)), NODE_NONE),
|
||||
ResolveIP("250.1.1." + ToString(i)));
|
||||
int bucket = infoi.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -677,7 +678,7 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket)
|
|||
for (int j = 0; j < 4 * 255; j++) {
|
||||
CAddrInfo infoj = CAddrInfo(CAddress(
|
||||
ResolveService(
|
||||
std::to_string(250 + (j / 255)) + "." + std::to_string(j % 256) + ".1.1"), NODE_NONE),
|
||||
ToString(250 + (j / 255)) + "." + ToString(j % 256) + ".1.1"), NODE_NONE),
|
||||
ResolveIP("251.4.1.1"));
|
||||
int bucket = infoj.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
|
@ -690,7 +691,7 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket)
|
|||
for (int p = 0; p < 255; p++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1.1"), NODE_NONE),
|
||||
ResolveIP("101." + std::to_string(p) + ".1.1"));
|
||||
ResolveIP("101." + ToString(p) + ".1.1"));
|
||||
int bucket = infoj.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -702,7 +703,7 @@ BOOST_AUTO_TEST_CASE(caddrinfo_get_new_bucket)
|
|||
for (int p = 0; p < 255; p++) {
|
||||
CAddrInfo infoj = CAddrInfo(
|
||||
CAddress(ResolveService("250.1.1.1"), NODE_NONE),
|
||||
ResolveIP("250." + std::to_string(p) + ".1.1"));
|
||||
ResolveIP("250." + ToString(p) + ".1.1"));
|
||||
int bucket = infoj.GetNewBucket(nKey1, asmap);
|
||||
buckets.insert(bucket);
|
||||
}
|
||||
|
@ -791,7 +792,7 @@ BOOST_AUTO_TEST_CASE(addrman_selecttriedcollision)
|
|||
// Add twenty two addresses.
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; i++) {
|
||||
CService addr = ResolveService("250.1.1."+std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1."+ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
addrman.Good(addr);
|
||||
|
||||
|
@ -802,7 +803,7 @@ BOOST_AUTO_TEST_CASE(addrman_selecttriedcollision)
|
|||
|
||||
// Ensure Good handles duplicates well.
|
||||
for (unsigned int i = 1; i < 23; i++) {
|
||||
CService addr = ResolveService("250.1.1."+std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1."+ToString(i));
|
||||
addrman.Good(addr);
|
||||
|
||||
BOOST_CHECK(addrman.size() == 22);
|
||||
|
@ -818,7 +819,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
|||
// Add twenty two addresses.
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; i++) {
|
||||
CService addr = ResolveService("250.1.1."+std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1."+ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
addrman.Good(addr);
|
||||
|
||||
|
@ -841,7 +842,7 @@ BOOST_AUTO_TEST_CASE(addrman_noevict)
|
|||
|
||||
// Lets create two collisions.
|
||||
for (unsigned int i = 24; i < 33; i++) {
|
||||
CService addr = ResolveService("250.1.1."+std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1."+ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
addrman.Good(addr);
|
||||
|
||||
|
@ -879,7 +880,7 @@ BOOST_AUTO_TEST_CASE(addrman_evictionworks)
|
|||
// Add twenty two addresses.
|
||||
CNetAddr source = ResolveIP("252.2.2.2");
|
||||
for (unsigned int i = 1; i < 23; i++) {
|
||||
CService addr = ResolveService("250.1.1."+std::to_string(i));
|
||||
CService addr = ResolveService("250.1.1."+ToString(i));
|
||||
BOOST_CHECK(addrman.Add(CAddress(addr, NODE_NONE), source));
|
||||
addrman.Good(addr);
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <chain.h>
|
||||
#include <rpc/blockchain.h>
|
||||
#include <util/string.h>
|
||||
#include <test/util/setup_common.h>
|
||||
|
||||
/* Equality between doubles is imprecise. Comparison should be done
|
||||
|
@ -30,8 +31,8 @@ static CBlockIndex* CreateBlockIndexWithNbits(uint32_t nbits)
|
|||
static void RejectDifficultyMismatch(double difficulty, double expected_difficulty) {
|
||||
BOOST_CHECK_MESSAGE(
|
||||
DoubleEquals(difficulty, expected_difficulty, 0.00001),
|
||||
"Difficulty was " + std::to_string(difficulty)
|
||||
+ " but was expected to be " + std::to_string(expected_difficulty));
|
||||
"Difficulty was " + ToString(difficulty)
|
||||
+ " but was expected to be " + ToString(expected_difficulty));
|
||||
}
|
||||
|
||||
/* Given a BlockIndex with the provided nbits,
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <script/standard.h>
|
||||
#include <serialize.h>
|
||||
#include <util/memory.h>
|
||||
#include <util/string.h>
|
||||
#include <util/system.h>
|
||||
#include <util/time.h>
|
||||
#include <validation.h>
|
||||
|
@ -313,7 +314,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
|
|||
BOOST_CHECK(peerLogic->SendMessages(&dummyNode1));
|
||||
}
|
||||
BOOST_CHECK(banman->IsBanned(addr1));
|
||||
gArgs.ForceSetArg("-banscore", std::to_string(DEFAULT_BANSCORE_THRESHOLD));
|
||||
gArgs.ForceSetArg("-banscore", ToString(DEFAULT_BANSCORE_THRESHOLD));
|
||||
|
||||
bool dummy;
|
||||
peerLogic->FinalizeNode(dummyNode1.GetId(), dummy);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <uint256.h>
|
||||
#include <util/system.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <test/util/setup_common.h>
|
||||
|
||||
#include <string>
|
||||
|
@ -176,7 +177,7 @@ BOOST_AUTO_TEST_CASE(key_signature_tests)
|
|||
bool found_small = false;
|
||||
for (int i = 0; i < 256; ++i) {
|
||||
sig.clear();
|
||||
std::string msg = "A message to be signed" + std::to_string(i);
|
||||
std::string msg = "A message to be signed" + ToString(i);
|
||||
msg_hash = Hash(msg.begin(), msg.end());
|
||||
BOOST_CHECK(key.Sign(msg_hash, sig));
|
||||
found = sig[3] == 0x20;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <chainparams.h>
|
||||
#include <util/memory.h>
|
||||
#include <util/system.h>
|
||||
#include <util/string.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
|
@ -85,7 +86,7 @@ BOOST_AUTO_TEST_CASE(cnode_listen_port)
|
|||
BOOST_CHECK(port == Params().GetDefaultPort());
|
||||
// test set port
|
||||
unsigned short altPort = 12345;
|
||||
BOOST_CHECK(gArgs.SoftSetArg("-port", std::to_string(altPort)));
|
||||
BOOST_CHECK(gArgs.SoftSetArg("-port", ToString(altPort)));
|
||||
port = GetListenPort();
|
||||
BOOST_CHECK(port == altPort);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <boost/test/unit_test.hpp>
|
||||
#include <univalue.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <vector>
|
||||
|
||||
BOOST_FIXTURE_TEST_SUITE(settings_tests, BasicTestingSetup)
|
||||
|
@ -114,7 +115,7 @@ BOOST_FIXTURE_TEST_CASE(Merge, MergeTestingSetup)
|
|||
std::vector<util::SettingsValue>& dest) {
|
||||
if (action == SET || action == SECTION_SET) {
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
dest.push_back(value_prefix + std::to_string(++value_suffix));
|
||||
dest.push_back(value_prefix + ToString(++value_suffix));
|
||||
desc += " " + name_prefix + name + "=" + dest.back().get_str();
|
||||
}
|
||||
} else if (action == NEGATE || action == SECTION_NEGATE) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include <netaddress.h>
|
||||
#include <noui.h>
|
||||
#include <util/string.h>
|
||||
#include <test/util/logging.h>
|
||||
#include <test/util/setup_common.h>
|
||||
#include <timedata.h>
|
||||
|
@ -46,7 +47,7 @@ static void MultiAddTimeData(int n, int64_t offset)
|
|||
static int cnt = 0;
|
||||
for (int i = 0; i < n; ++i) {
|
||||
CNetAddr addr;
|
||||
addr.SetInternal(std::to_string(++cnt));
|
||||
addr.SetInternal(ToString(++cnt));
|
||||
AddTimeData(addr, offset);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <txdb.h>
|
||||
#include <util/memory.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <util/time.h>
|
||||
#include <util/translation.h>
|
||||
#include <validation.h>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <random.h>
|
||||
#include <scheduler.h>
|
||||
#include <txmempool.h>
|
||||
#include <util/string.h>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
|
|
|
@ -894,7 +894,7 @@ struct ArgsMergeTestingSetup : public BasicTestingSetup {
|
|||
if (action == SECTION_SET || action == SECTION_NEGATE) prefix = section + ".";
|
||||
if (action == SET || action == SECTION_SET) {
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
values.push_back(prefix + name + "=" + value_prefix + std::to_string(++suffix));
|
||||
values.push_back(prefix + name + "=" + value_prefix + ToString(++suffix));
|
||||
}
|
||||
}
|
||||
if (action == NEGATE || action == SECTION_NEGATE) {
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include <util/string.h>
|
||||
#include <util/threadnames.h>
|
||||
#include <test/util/setup_common.h>
|
||||
|
||||
|
@ -32,7 +33,7 @@ std::set<std::string> RenameEnMasse(int num_threads)
|
|||
std::mutex lock;
|
||||
|
||||
auto RenameThisThread = [&](int i) {
|
||||
util::ThreadRename(TEST_THREAD_NAME_BASE + std::to_string(i));
|
||||
util::ThreadRename(TEST_THREAD_NAME_BASE + ToString(i));
|
||||
std::lock_guard<std::mutex> guard(lock);
|
||||
names.insert(util::ThreadGetInternalName());
|
||||
};
|
||||
|
@ -65,7 +66,7 @@ BOOST_AUTO_TEST_CASE(util_threadnames_test_rename_threaded)
|
|||
|
||||
// Names "test_thread.[n]" should exist for n = [0, 99]
|
||||
for (int i = 0; i < 100; ++i) {
|
||||
BOOST_CHECK(names.find(TEST_THREAD_NAME_BASE + std::to_string(i)) != names.end());
|
||||
BOOST_CHECK(names.find(TEST_THREAD_NAME_BASE + ToString(i)) != names.end());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#include <attributes.h>
|
||||
|
||||
#include <cstring>
|
||||
#include <locale>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
|
@ -52,4 +54,16 @@ NODISCARD inline bool ValidAsCString(const std::string& str) noexcept
|
|||
return str.size() == strlen(str.c_str());
|
||||
}
|
||||
|
||||
/**
|
||||
* Locale-independent version of std::to_string
|
||||
*/
|
||||
template <typename T>
|
||||
std::string ToString(const T& t)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss.imbue(std::locale::classic());
|
||||
oss << t;
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
#endif // BITCOIN_UTIL_STRENCODINGS_H
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <script/sign.h>
|
||||
#include <util/bip32.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/string.h>
|
||||
#include <util/translation.h>
|
||||
#include <wallet/scriptpubkeyman.h>
|
||||
|
||||
|
@ -989,7 +990,7 @@ void LegacyScriptPubKeyMan::DeriveNewChildKey(WalletBatch &batch, CKeyMetadata&
|
|||
// example: 1 | BIP32_HARDENED_KEY_LIMIT == 0x80000001 == 2147483649
|
||||
if (internal) {
|
||||
chainChildKey.Derive(childKey, hdChain.nInternalChainCounter | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.hdKeypath = "m/0'/1'/" + std::to_string(hdChain.nInternalChainCounter) + "'";
|
||||
metadata.hdKeypath = "m/0'/1'/" + ToString(hdChain.nInternalChainCounter) + "'";
|
||||
metadata.key_origin.path.push_back(0 | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.key_origin.path.push_back(1 | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.key_origin.path.push_back(hdChain.nInternalChainCounter | BIP32_HARDENED_KEY_LIMIT);
|
||||
|
@ -997,7 +998,7 @@ void LegacyScriptPubKeyMan::DeriveNewChildKey(WalletBatch &batch, CKeyMetadata&
|
|||
}
|
||||
else {
|
||||
chainChildKey.Derive(childKey, hdChain.nExternalChainCounter | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.hdKeypath = "m/0'/0'/" + std::to_string(hdChain.nExternalChainCounter) + "'";
|
||||
metadata.hdKeypath = "m/0'/0'/" + ToString(hdChain.nExternalChainCounter) + "'";
|
||||
metadata.key_origin.path.push_back(0 | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.key_origin.path.push_back(0 | BIP32_HARDENED_KEY_LIMIT);
|
||||
metadata.key_origin.path.push_back(hdChain.nExternalChainCounter | BIP32_HARDENED_KEY_LIMIT);
|
||||
|
|
|
@ -6,31 +6,16 @@
|
|||
export LC_ALL=C
|
||||
KNOWN_VIOLATIONS=(
|
||||
"src/bitcoin-tx.cpp.*stoul"
|
||||
"src/bitcoin-tx.cpp.*std::to_string"
|
||||
"src/bitcoin-tx.cpp.*trim_right"
|
||||
"src/dbwrapper.cpp.*stoul"
|
||||
"src/dbwrapper.cpp:.*vsnprintf"
|
||||
"src/httprpc.cpp.*trim"
|
||||
"src/init.cpp:.*atoi"
|
||||
"src/qt/optionsmodel.cpp.*std::to_string"
|
||||
"src/qt/rpcconsole.cpp:.*atoi"
|
||||
"src/rest.cpp:.*strtol"
|
||||
"src/rpc/net.cpp.*std::to_string"
|
||||
"src/rpc/rawtransaction.cpp.*std::to_string"
|
||||
"src/rpc/util.cpp.*std::to_string"
|
||||
"src/test/addrman_tests.cpp.*std::to_string"
|
||||
"src/test/blockchain_tests.cpp.*std::to_string"
|
||||
"src/test/dbwrapper_tests.cpp:.*snprintf"
|
||||
"src/test/denialofservice_tests.cpp.*std::to_string"
|
||||
"src/test/fuzz/locale.cpp"
|
||||
"src/test/fuzz/parse_numbers.cpp:.*atoi"
|
||||
"src/test/key_tests.cpp.*std::to_string"
|
||||
"src/test/net_tests.cpp.*std::to_string"
|
||||
"src/test/settings_tests.cpp.*std::to_string"
|
||||
"src/test/timedata_tests.cpp.*std::to_string"
|
||||
"src/test/util/setup_common.cpp.*std::to_string"
|
||||
"src/test/util_tests.cpp.*std::to_string"
|
||||
"src/test/util_threadnames_tests.cpp.*std::to_string"
|
||||
"src/torcontrol.cpp:.*atoi"
|
||||
"src/torcontrol.cpp:.*strtol"
|
||||
"src/util/strencodings.cpp:.*atoi"
|
||||
|
@ -38,7 +23,6 @@ KNOWN_VIOLATIONS=(
|
|||
"src/util/strencodings.cpp:.*strtoul"
|
||||
"src/util/strencodings.h:.*atoi"
|
||||
"src/util/system.cpp:.*atoi"
|
||||
"src/wallet/scriptpubkeyman.cpp.*std::to_string"
|
||||
)
|
||||
|
||||
REGEXP_IGNORE_EXTERNAL_DEPENDENCIES="^src/(crypto/ctaes/|leveldb/|secp256k1/|tinyformat.h|univalue/)"
|
||||
|
|
Loading…
Reference in a new issue