From 5d2a1b255712db729b48a0e508d8135d07d78c41 Mon Sep 17 00:00:00 2001 From: chromatic Date: Sat, 15 Oct 2022 17:36:49 -0700 Subject: [PATCH] Optimize IsHex() string helper function This looks like a silly optimization, but this function gets called for transaction processing, so returning early when there's no point in even starting to iterate through a string is just smart coding. --- src/utilstrencodings.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/utilstrencodings.cpp b/src/utilstrencodings.cpp index 025040c43..483939698 100644 --- a/src/utilstrencodings.cpp +++ b/src/utilstrencodings.cpp @@ -58,12 +58,16 @@ signed char HexDigit(char c) bool IsHex(const string& str) { + if ((str.size() <= 0) || (str.size()%2 != 0)) + return false; + for(std::string::const_iterator it(str.begin()); it != str.end(); ++it) { if (HexDigit(*it) < 0) return false; } - return (str.size() > 0) && (str.size()%2 == 0); + + return true; } vector ParseHex(const char* psz)