diff options
Diffstat (limited to 'source/kde')
-rw-r--r-- | source/kde/kde/build/kcoreaddons | 2 | ||||
-rw-r--r-- | source/kde/kde/build/kfilemetadata | 2 | ||||
-rw-r--r-- | source/kde/kde/build/ktexteditor | 2 | ||||
-rw-r--r-- | source/kde/kde/patch/ktexteditor.patch | 2 | ||||
-rw-r--r-- | source/kde/kde/patch/ktexteditor/686da7797105a93035cfbc7edbf2a8e8f8adf0ec.patch | 101 |
5 files changed, 3 insertions, 106 deletions
diff --git a/source/kde/kde/build/kcoreaddons b/source/kde/kde/build/kcoreaddons index 0cfbf088..d00491fd 100644 --- a/source/kde/kde/build/kcoreaddons +++ b/source/kde/kde/build/kcoreaddons @@ -1 +1 @@ -2 +1 diff --git a/source/kde/kde/build/kfilemetadata b/source/kde/kde/build/kfilemetadata index 0cfbf088..d00491fd 100644 --- a/source/kde/kde/build/kfilemetadata +++ b/source/kde/kde/build/kfilemetadata @@ -1 +1 @@ -2 +1 diff --git a/source/kde/kde/build/ktexteditor b/source/kde/kde/build/ktexteditor index 0cfbf088..d00491fd 100644 --- a/source/kde/kde/build/ktexteditor +++ b/source/kde/kde/build/ktexteditor @@ -1 +1 @@ -2 +1 diff --git a/source/kde/kde/patch/ktexteditor.patch b/source/kde/kde/patch/ktexteditor.patch deleted file mode 100644 index 39331d70..00000000 --- a/source/kde/kde/patch/ktexteditor.patch +++ /dev/null @@ -1,2 +0,0 @@ -# Fix syntax highlighting in kdevelop: -cat $CWD/patch/ktexteditor/686da7797105a93035cfbc7edbf2a8e8f8adf0ec.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/kde/kde/patch/ktexteditor/686da7797105a93035cfbc7edbf2a8e8f8adf0ec.patch b/source/kde/kde/patch/ktexteditor/686da7797105a93035cfbc7edbf2a8e8f8adf0ec.patch deleted file mode 100644 index 7fca1a9e..00000000 --- a/source/kde/kde/patch/ktexteditor/686da7797105a93035cfbc7edbf2a8e8f8adf0ec.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 686da7797105a93035cfbc7edbf2a8e8f8adf0ec Mon Sep 17 00:00:00 2001 -From: Christoph Cullmann <cullmann@kde.org> -Date: Wed, 17 Feb 2021 20:51:12 +0100 -Subject: [PATCH] ensure rangesForLine caching is correcly updated - -during fixing a segfault, as invalid range pointer were kept -in the rangesForLine cache, too many ranges were purged - -properly update the cache before potential invalidation - -add unit test to avoid regressions in the future ---- - autotests/src/movingrange_test.cpp | 33 ++++++++++++++++++++++++++++++ - autotests/src/movingrange_test.h | 1 + - src/buffer/katetextblock.cpp | 10 +++++++++ - 3 files changed, 44 insertions(+) - -diff --git a/autotests/src/movingrange_test.cpp b/autotests/src/movingrange_test.cpp -index 66393ae7..81a85b1a 100644 ---- a/autotests/src/movingrange_test.cpp -+++ b/autotests/src/movingrange_test.cpp -@@ -459,3 +459,36 @@ void MovingRangeTest::testLineRemoved() - auto r = doc.buffer().rangesForLine(1, view, true); - QVERIFY(r.isEmpty()); - } -+ -+void MovingRangeTest::testLineWrapOrUnwrapUpdateRangeForLineCache() -+{ -+ KTextEditor::DocumentPrivate doc; -+ doc.setText( -+ QStringLiteral("abcd\n" -+ "efgh\n" -+ "hijk\n")); -+ -+ // add range to line 2, it shall be in rangeForLine for the right lines after each update! -+ // must be single line range to be in the cache! -+ auto range = static_cast<Kate::TextRange *>(doc.newMovingRange({2, 1, 2, 3}, -+ KTextEditor::MovingRange::ExpandLeft | KTextEditor::MovingRange::ExpandRight, -+ KTextEditor::MovingRange::InvalidateIfEmpty)); -+ -+ // range shall be in the lookup cache for line 2 -+ QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).contains(range)); -+ -+ // wrap line 1 => range should move to line 3 -+ doc.editWrapLine(1, 1); -+ QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(3, nullptr, false).contains(range)); -+ -+ // unwrap line 1 => range should back move to line 2 -+ doc.editUnWrapLine(1); -+ QVERIFY(doc.buffer().rangesForLine(0, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(1, nullptr, false).isEmpty()); -+ QVERIFY(doc.buffer().rangesForLine(2, nullptr, false).contains(range)); -+} -diff --git a/autotests/src/movingrange_test.h b/autotests/src/movingrange_test.h -index 6f8c057d..016655f7 100644 ---- a/autotests/src/movingrange_test.h -+++ b/autotests/src/movingrange_test.h -@@ -24,6 +24,7 @@ private Q_SLOTS: - void testFeedbackCaret(); - void testFeedbackMouse(); - void testLineRemoved(); -+ void testLineWrapOrUnwrapUpdateRangeForLineCache(); - }; - - #endif // KATE_MOVINGRANGE_TEST_H -diff --git a/src/buffer/katetextblock.cpp b/src/buffer/katetextblock.cpp -index 43d137e4..246897b4 100644 ---- a/src/buffer/katetextblock.cpp -+++ b/src/buffer/katetextblock.cpp -@@ -167,6 +167,11 @@ void TextBlock::wrapLine(const KTextEditor::Cursor &position, int fixStartLinesS - // we might need to invalidate ranges or notify about their changes - // checkValidity might trigger delete of the range! - for (TextRange *range : qAsConst(changedRanges)) { -+ // we need to do updateRange to ALWAYS ensure the line => range and back cache is updated -+ // see MovingRangeTest::testLineWrapOrUnwrapUpdateRangeForLineCache -+ updateRange(range); -+ -+ // in addition: ensure that we really invalidate bad ranges! - range->checkValidity(range->toLineRange()); - } - } -@@ -333,6 +338,11 @@ void TextBlock::unwrapLine(int line, TextBlock *previousBlock, int fixStartLines - // we might need to invalidate ranges or notify about their changes - // checkValidity might trigger delete of the range! - for (TextRange *range : qAsConst(changedRanges)) { -+ // we need to do updateRange to ALWAYS ensure the line => range and back cache is updated -+ // see MovingRangeTest::testLineWrapOrUnwrapUpdateRangeForLineCache -+ updateRange(range); -+ -+ // in addition: ensure that we really invalidate bad ranges! - range->checkValidity(range->toLineRange()); - } - } --- -GitLab - |