Merge pull request #10275 from Snuffleupagus/trees-get-binary-search

Fix `NameOrNumberTree.get` to actually perform a binary search to find the requested key
This commit is contained in:
Tim van der Meij 2018-11-24 20:51:12 +01:00 committed by GitHub
commit 87e3fb8413
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1686,7 +1686,7 @@ class NameOrNumberTree {
while (l <= r) { while (l <= r) {
// Check only even indices (0, 2, 4, ...) because the // Check only even indices (0, 2, 4, ...) because the
// odd indices contain the actual data. // odd indices contain the actual data.
const m = (l + r) & ~1; const tmp = (l + r) >> 1, m = tmp + (tmp & 1);
const currentKey = xref.fetchIfRef(entries[m]); const currentKey = xref.fetchIfRef(entries[m]);
if (key < currentKey) { if (key < currentKey) {
r = m - 2; r = m - 2;