diff options
author | fanquake <fanquake@gmail.com> | 2022-09-16 10:26:57 +0100 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2022-09-16 10:32:23 +0100 |
commit | 2530a246896c8a7d808356111a3b92e1449dab02 (patch) | |
tree | aa260a66a86185320ddf43c33f06edb637006f96 | |
parent | 19526d937fbd16b3c868f4a7ecd2c076e71eb8fc (diff) | |
parent | 04fee75bacb9ec3bceff1246ba6c8ed8a8759548 (diff) |
Merge bitcoin/bitcoin#26105: Use ReadLE64 in uint256::GetUint64 instead of duplicating logic
04fee75bacb9ec3bceff1246ba6c8ed8a8759548 Use ReadLE64 in uint256::GetUint64() instead of duplicating logic (Pieter Wuille)
Pull request description:
No need to have a (naive) copy of the `ReadLE64` logic inside `uint256::GetUint64`, when we have an optimized function for exactly that.
ACKs for top commit:
davidgumberg:
ACK 04fee75bacb9ec3bceff1246ba6c8ed8a8759548
jonatack:
ACK 04fee75bacb9ec3bceff1246ba6c8ed8a8759548 review, this use of ReadLE64() is similar to the existing invocation by Num3072::Num3072(), sanity checked that before and after this change GetUint64() returns the same result (debug build, clang 13)
Tree-SHA512: 0fc2681536a18d82408411bcc6d5c6445fb96793fa43ff4021cd2933d46514c725318da35884f428d1799023921f33f8af091ef428ceb96a50866ac53a345356
-rw-r--r-- | src/uint256.h | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/uint256.h b/src/uint256.h index 5c3a2f5409..e74b9ff7b1 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -6,6 +6,7 @@ #ifndef BITCOIN_UINT256_H #define BITCOIN_UINT256_H +#include <crypto/common.h> #include <span.h> #include <assert.h> @@ -84,15 +85,7 @@ public: uint64_t GetUint64(int pos) const { - const uint8_t* ptr = m_data + pos * 8; - return ((uint64_t)ptr[0]) | \ - ((uint64_t)ptr[1]) << 8 | \ - ((uint64_t)ptr[2]) << 16 | \ - ((uint64_t)ptr[3]) << 24 | \ - ((uint64_t)ptr[4]) << 32 | \ - ((uint64_t)ptr[5]) << 40 | \ - ((uint64_t)ptr[6]) << 48 | \ - ((uint64_t)ptr[7]) << 56; + return ReadLE64(m_data + pos * 8); } template<typename Stream> |