diff options
Diffstat (limited to 'src/SparseVector.h')
-rw-r--r-- | src/SparseVector.h | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/SparseVector.h b/src/SparseVector.h index 0f9f4ad1c..4e28996fc 100644 --- a/src/SparseVector.h +++ b/src/SparseVector.h @@ -15,42 +15,42 @@ namespace Scintilla { template <typename T> class SparseVector { private: - std::unique_ptr<Partitioning<int>> starts; + std::unique_ptr<Partitioning<Sci::Position>> starts; std::unique_ptr<SplitVector<T>> values; T empty; // Deleted so SparseVector objects can not be copied. SparseVector(const SparseVector &) = delete; void operator=(const SparseVector &) = delete; - void ClearValue(int partition) { + void ClearValue(Sci::Position partition) { values->SetValueAt(partition, T()); } public: SparseVector() : empty() { - starts.reset(new Partitioning<int>(8)); + starts.reset(new Partitioning<Sci::Position>(8)); values.reset(new SplitVector<T>()); values->InsertEmpty(0, 2); } ~SparseVector() { starts.reset(); // starts dead here but not used by ClearValue. - for (int part = 0; part < values->Length(); part++) { + for (Sci::Position part = 0; part < values->Length(); part++) { ClearValue(part); } values.reset(); } - int Length() const { + Sci::Position Length() const { return starts->PositionFromPartition(starts->Partitions()); } - int Elements() const { + Sci::Position Elements() const { return starts->Partitions(); } - int PositionOfElement(int element) const { + Sci::Position PositionOfElement(int element) const { return starts->PositionFromPartition(element); } - const T& ValueAt(int position) const { + const T& ValueAt(Sci::Position position) const { assert(position < Length()); - const int partition = starts->PartitionFromPosition(position); - const int startPartition = starts->PositionFromPartition(partition); + const Sci::Position partition = starts->PartitionFromPosition(position); + const Sci::Position startPartition = starts->PositionFromPartition(partition); if (startPartition == position) { return values->ValueAt(partition); } else { @@ -58,10 +58,10 @@ public: } } template <typename ParamType> - void SetValueAt(int position, ParamType &&value) { + void SetValueAt(Sci::Position position, ParamType &&value) { assert(position < Length()); - const int partition = starts->PartitionFromPosition(position); - const int startPartition = starts->PositionFromPartition(partition); + const Sci::Position partition = starts->PartitionFromPosition(position); + const Sci::Position startPartition = starts->PositionFromPartition(partition); if (value == T()) { // Setting the empty value is equivalent to deleting the position if (position == 0) { @@ -85,10 +85,10 @@ public: } } } - void InsertSpace(int position, int insertLength) { + void InsertSpace(Sci::Position position, Sci::Position insertLength) { assert(position <= Length()); // Only operation that works at end. - const int partition = starts->PartitionFromPosition(position); - const int startPartition = starts->PositionFromPartition(partition); + const Sci::Position partition = starts->PartitionFromPosition(position); + const Sci::Position startPartition = starts->PositionFromPartition(partition); if (startPartition == position) { const bool positionOccupied = values->ValueAt(partition) != T(); // Inserting at start of run so make previous longer @@ -111,10 +111,10 @@ public: starts->InsertText(partition, insertLength); } } - void DeletePosition(int position) { + void DeletePosition(Sci::Position position) { assert(position < Length()); - int partition = starts->PartitionFromPosition(position); - const int startPartition = starts->PositionFromPartition(partition); + Sci::Position partition = starts->PartitionFromPosition(position); + const Sci::Position startPartition = starts->PositionFromPartition(partition); if (startPartition == position) { if (partition == 0) { ClearValue(0); |