diff options
author | Olivier Langlois <olivier@olivierlanglois.net> | 2013-10-10 12:35:51 -0400 |
---|---|---|
committer | Olivier Langlois <olivier@olivierlanglois.net> | 2013-10-27 23:04:52 -0400 |
commit | f171ec0c7d084b6bb163d1466edd814cf4dcbc93 (patch) | |
tree | cb0708afc624eeb68a0b0b5db0aca19e9cc58984 /src/bignum.h | |
parent | 15b48ab03612952b355cdd411cc541668d147bfb (diff) |
Make util phexdigit array reusable
class template base_uint had its own private lookup table.
This is saving 256 bytes per instantiation.
The result is not spectacular as bitcoin-qt has only shrinked of
about 1Kb but it is still valid improvement.
Also, I have replaced a for loop with a memset() call.
Made CBigNum::SetHex() use the new HexDigit() function.
Signed-off-by: Olivier Langlois <olivier@olivierlanglois.net>
Diffstat (limited to 'src/bignum.h')
-rw-r--r-- | src/bignum.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/bignum.h b/src/bignum.h index 0881807d70..98655cc0e9 100644 --- a/src/bignum.h +++ b/src/bignum.h @@ -347,13 +347,13 @@ public: psz++; // hex string to bignum - static const signed char phexdigit[256] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xa,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0,0,0,0,0 }; *this = 0; - while (isxdigit(*psz)) + int n; + while ((n = HexDigit(*psz)) != -1) { *this <<= 4; - int n = phexdigit[(unsigned char)*psz++]; *this += n; + ++psz; } if (fNegative) *this = 0 - *this; |