mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-18 06:00:43 +02:00

Also: - Make DEFAULT_MAX_SIG_CACHE_SIZE into constexpr DEFAULT_MAX_SIG_CACHE_BYTES to utilize the compile-time integer arithmetic overflow checking available to constexpr. - Fix comment (MiB instead of MB) for DEFAULT_MAX_SIG_CACHE_BYTES. - Pass in max_size_bytes parameter to InitS*Cache(), modify log line to no longer allude to maxsigcachesize being split evenly between the two validation caches. - Fix possible integer truncation and add a comment. [META] I've kept the integer types as int64_t in order to not introduce unintended behaviour changes, in the next commit we will make them size_t.
29 lines
838 B
C++
29 lines
838 B
C++
// Copyright (c) 2022 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#include <node/validation_cache_args.h>
|
|
|
|
#include <kernel/validation_cache_sizes.h>
|
|
|
|
#include <util/system.h>
|
|
|
|
#include <memory>
|
|
#include <optional>
|
|
|
|
using kernel::ValidationCacheSizes;
|
|
|
|
namespace node {
|
|
void ApplyArgsManOptions(const ArgsManager& argsman, ValidationCacheSizes& cache_sizes)
|
|
{
|
|
if (auto max_size = argsman.GetIntArg("-maxsigcachesize")) {
|
|
// Multiply first, divide after to avoid integer truncation
|
|
int64_t size_each = *max_size * (1 << 20) / 2;
|
|
cache_sizes = {
|
|
.signature_cache_bytes = size_each,
|
|
.script_execution_cache_bytes = size_each,
|
|
};
|
|
}
|
|
}
|
|
} // namespace node
|