aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/SparseVector.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2019-12-02 08:34:47 +1100
committerNeil <nyamatongwe@gmail.com>2019-12-02 08:34:47 +1100
commite9f310d4043e58739c9e661159a35847a7ba5df5 (patch)
tree8254897533f01e93c3cc4f9baf7a5d57dd678862 /src/SparseVector.h
parent2892e0d04bcf02fe249939f7c22fe8c6d780233a (diff)
downloadscintilla-mirror-e9f310d4043e58739c9e661159a35847a7ba5df5.tar.gz
Backport: Add SparseVector::IndexAfter for efficiently finding elements in a range.
Backport of changeset 7779:67b7e8f152a9.
Diffstat (limited to 'src/SparseVector.h')
-rw-r--r--src/SparseVector.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/SparseVector.h b/src/SparseVector.h
index 6dd02ba8b..86d631c3f 100644
--- a/src/SparseVector.h
+++ b/src/SparseVector.h
@@ -154,6 +154,13 @@ public:
starts->InsertText(partition, -1);
Check();
}
+ Sci::Position IndexAfter(Sci::Position position) const noexcept {
+ assert(position < Length());
+ if (position < 0)
+ return 0;
+ const Sci::Position partition = starts->PartitionFromPosition(position);
+ return partition + 1;
+ }
void Check() const {
#ifdef CHECK_CORRECTNESS
starts->Check();