diff options
author | Zufu Liu <unknown> | 2024-03-08 09:59:53 +1100 |
---|---|---|
committer | Zufu Liu <unknown> | 2024-03-08 09:59:53 +1100 |
commit | 990e88a854ce05b86f4ce0b6f9b6975b6df4a282 (patch) | |
tree | 09dc3c22956eb3190f5156f738e48ee37da7603b | |
parent | 61b369cbfef41fece0d01b7ff600afaa891d76ec (diff) | |
download | scintilla-mirror-990e88a854ce05b86f4ce0b6f9b6975b6df4a282.tar.gz |
Feature [feature-requests:#1512]. Simplify ElementForValue.
-rw-r--r-- | src/UndoHistory.cxx | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/UndoHistory.cxx b/src/UndoHistory.cxx index 48695e664..66b6e62be 100644 --- a/src/UndoHistory.cxx +++ b/src/UndoHistory.cxx @@ -44,7 +44,6 @@ void VectorTruncate(std::vector<T> &v, size_t length) noexcept { constexpr size_t byteMask = UINT8_MAX; constexpr size_t byteBits = 8; -constexpr size_t maxElementSize = 8; size_t ReadValue(const uint8_t *bytes, size_t length) noexcept { size_t value = 0; @@ -75,13 +74,13 @@ intptr_t ScaledVector::SignedValueAt(size_t index) const noexcept { constexpr SizeMax ElementForValue(size_t value) noexcept { size_t maxN = byteMask; - for (size_t i = 1; i < maxElementSize; i++) { - if (value <= maxN) { - return { i, maxN }; - } + size_t i = 1; + while (value > byteMask) { + i++; + value >>= byteBits; maxN = (maxN << byteBits) + byteMask; } - return { 1, byteMask }; + return { i, maxN }; } void ScaledVector::SetValueAt(size_t index, size_t value) { |