diff options
author | Neil <nyamatongwe@gmail.com> | 2022-07-20 11:00:37 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2022-07-20 11:00:37 +1000 |
commit | b324e4dcee0ced34c4135f68faba0ff17812766a (patch) | |
tree | 67ab8d8d6d0ecba3127f99467878606867a0aeb8 | |
parent | cd203ffde6b18ecabd7371ca839afc6c779913b4 (diff) | |
download | scintilla-mirror-b324e4dcee0ced34c4135f68faba0ff17812766a.tar.gz |
Fix setting end element empty.
-rw-r--r-- | src/SparseVector.h | 2 | ||||
-rw-r--r-- | test/unit/testSparseVector.cxx | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/SparseVector.h b/src/SparseVector.h index 31636165a..31815c789 100644 --- a/src/SparseVector.h +++ b/src/SparseVector.h @@ -77,7 +77,7 @@ public: const Sci::Position startPartition = starts->PositionFromPartition(partition); if (value == T()) { // Setting the empty value is equivalent to deleting the position - if (position == 0) { + if (position == 0 || position == Length()) { ClearValue(partition); } else if (position == startPartition) { // Currently an element at this position, so remove diff --git a/test/unit/testSparseVector.cxx b/test/unit/testSparseVector.cxx index 0bc8f9093..5756b8de0 100644 --- a/test/unit/testSparseVector.cxx +++ b/test/unit/testSparseVector.cxx @@ -179,6 +179,10 @@ TEST_CASE("SparseVector") { REQUIRE(1 == st.Elements()); REQUIRE("------" == Representation(st)); st.Check(); + st.SetValueAt(5, nullptr); + REQUIRE(1 == st.Elements()); + REQUIRE("------" == Representation(st)); + st.Check(); } SECTION("CheckDeletionLeavesOrdered") { |