mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge pull request #4469 from pravblockc/backports-v0.19-pr2
Backports #15853 #15463 and #16073
This commit is contained in:
commit
2f845d8074
@ -18,6 +18,7 @@
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#define LN2SQUARED 0.4804530139182014246671025263266649717305529515945455
|
||||
#define LN2 0.6931471805599453094172321214581765680755001343602552
|
||||
@ -389,7 +390,5 @@ void CRollingBloomFilter::reset()
|
||||
nTweak = GetRand(std::numeric_limits<unsigned int>::max());
|
||||
nEntriesThisGeneration = 0;
|
||||
nGeneration = 1;
|
||||
for (std::vector<uint64_t>::iterator it = data.begin(); it != data.end(); it++) {
|
||||
*it = 0;
|
||||
}
|
||||
std::fill(data.begin(), data.end(), 0);
|
||||
}
|
||||
|
@ -3777,9 +3777,20 @@ static UniValue getaddressesbylabel(const JSONRPCRequest& request)
|
||||
|
||||
// Find all addresses that have the given label
|
||||
UniValue ret(UniValue::VOBJ);
|
||||
std::set<std::string> addresses;
|
||||
for (const std::pair<CTxDestination, CAddressBookData>& item : pwallet->mapAddressBook) {
|
||||
if (item.second.name == label) {
|
||||
ret.pushKV(EncodeDestination(item.first), AddressBookDataToJSON(item.second, false));
|
||||
std::string address = EncodeDestination(item.first);
|
||||
// CWallet::mapAddressBook is not expected to contain duplicate
|
||||
// address strings, but build a separate set as a precaution just in
|
||||
// case it does.
|
||||
bool unique = addresses.emplace(address).second;
|
||||
assert(unique);
|
||||
// UniValue::pushKV checks if the key exists in O(N)
|
||||
// and since duplicate addresses are unexpected (checked with
|
||||
// std::set in O(log(N))), UniValue::__pushKV is used instead,
|
||||
// which currently is O(1).
|
||||
ret.__pushKV(address, AddressBookDataToJSON(item.second, false));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,11 @@
|
||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2015 The Bitcoin Core developers
|
||||
// Copyright (c) 2009-2019 The Bitcoin Core developers
|
||||
// Copyright (c) 2014-2021 The Dash Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include <wallet/wallet.h>
|
||||
|
||||
#include <checkpoints.h>
|
||||
#include <chain.h>
|
||||
#include <wallet/coinselection.h>
|
||||
#include <consensus/consensus.h>
|
||||
|
Loading…
Reference in New Issue
Block a user