diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2018-06-04 08:44:07 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2018-06-04 08:47:16 +0200 |
commit | 2722a1f8e935df86e698d717a35e7ffef65e6e02 (patch) | |
tree | 424e8dbf2ff785f355afa7510b66ca83bffface2 | |
parent | f0149330d2f855e75f359d61ed9038f4fdc3f121 (diff) | |
parent | f41d339b781f41f05946e965da3e1bf5d0a9e50b (diff) | |
download | bitcoin-2722a1f8e935df86e698d717a35e7ffef65e6e02.tar.xz |
Merge #13383: bench: Use non-throwing ParseDouble(...) instead of throwing boost::lexical_cast<double>(...)
f41d339b781f41f05946e965da3e1bf5d0a9e50b bench: Use non-throwing ParseDouble(...) instead of throwing boost::lexical_cast<double>(...) (practicalswift)
Pull request description:
* Non-Boost is better than Boost.
* Non-throwing is better than throwing.
* Explicit error handling is better than implicit error handling.
* `ParseDouble(…)` deserves to be used outside of its unit tests :-)
Tree-SHA512: a8cf04a5f8363cb7ced0bcaf1fed00e1e5dd6a63a6c11e5f0ba4e5c845b0df7c2b050d887075f158cd62dc7e02843ecaafc15e42e383c066461c6d7399e06b49
-rw-r--r-- | src/bench/bench_bitcoin.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/bench/bench_bitcoin.cpp b/src/bench/bench_bitcoin.cpp index 556d1fae9e..f3302bfe5a 100644 --- a/src/bench/bench_bitcoin.cpp +++ b/src/bench/bench_bitcoin.cpp @@ -6,11 +6,10 @@ #include <crypto/sha256.h> #include <key.h> -#include <validation.h> -#include <util.h> #include <random.h> - -#include <boost/lexical_cast.hpp> +#include <util.h> +#include <utilstrencodings.h> +#include <validation.h> #include <memory> @@ -64,8 +63,11 @@ int main(int argc, char** argv) std::string scaling_str = gArgs.GetArg("-scaling", DEFAULT_BENCH_SCALING); bool is_list_only = gArgs.GetBoolArg("-list", false); - double scaling_factor = boost::lexical_cast<double>(scaling_str); - + double scaling_factor; + if (!ParseDouble(scaling_str, &scaling_factor)) { + fprintf(stderr, "Error parsing scaling factor as double: %s\n", scaling_str.c_str()); + return EXIT_FAILURE; + } std::unique_ptr<benchmark::Printer> printer(new benchmark::ConsolePrinter()); std::string printer_arg = gArgs.GetArg("-printer", DEFAULT_BENCH_PRINTER); |