https://bugs.kde.org/show_bug.cgi?id=457392

            Bug ID: 457392
           Summary: Kate crashes when calling wordLeft on column 1 of a
                    line of length 1
           Product: frameworks-ktexteditor
           Version: unspecified
          Platform: Compiled Sources
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: kwrite-bugs-n...@kde.org
          Reporter: r...@uzy.me
  Target Milestone: ---

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug
symbols.
See
https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1. Open a new file in Kate
2. press any letter
3. press Ctrl+Left

OBSERVED RESULT
Kate crashes.

    Thread 1 "kate" received signal SIGABRT, Aborted.
    0x00007ffff63b8ce1 in raise () from /lib/x86_64-linux-gnu/libc.so.6
    (gdb) bt
    #0  0x00007ffff63b8ce1 in raise () from /lib/x86_64-linux-gnu/libc.so.6
    #1  0x00007ffff63a2537 in abort () from /lib/x86_64-linux-gnu/libc.so.6
    #2  0x00007ffff67a0bf1 in QMessageLogger::fatal(char const*, ...) const ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #3  0x00007ffff67a0040 in qt_assert(char const*, char const*, int) ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #4  0x00007ffff5eafb98 in QString::at (this=0x55555a10d230, i=-1)
        at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1072
    #5  0x00007ffff6065446 in CamelCursor::operator+= (this=0x7fffffffbf70,
n=-1)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateviewinternal.cpp:1369
    #6  0x00007ffff6065816 in CamelCursor::operator-= (this=0x7fffffffbf70,
n=1)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateviewinternal.cpp:1423
    #7  0x00007ffff6063d3c in CalculatingCursor::operator--
(this=0x7fffffffbf70)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateviewinternal.cpp:961
    #8  0x00007ffff6050bd8 in operator() (__closure=0x7fffffffc1d8, cursor=...)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateviewinternal.cpp:1500
    #9  0x00007ffff6050ff5 in KateViewInternal::wordPrev (this=0x55555a41eca0,
sel=false)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateviewinternal.cpp:1530
    #10 0x00007ffff6035a76 in KTextEditor::ViewPrivate::wordLeft
(this=0x55555aa62bb0)
        at
/home/p4bl0/projects/kde/src/frameworks/ktexteditor/src/view/kateview.cpp:3860
    #11 0x00007ffff60486ed in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void (KTextEditor::ViewPrivate::*)()>::call(void
(KTextEditor::ViewPrivate::*)(), KTextEditor::ViewPrivate*, void**) (
        f=(void (KTextEditor::ViewPrivate::*)(KTextEditor::ViewPrivate *
const)) 0x7ffff6035a08 <KTextEditor::ViewPrivate::wordLeft()>,
o=0x55555aa62bb0, arg=0x7fffffffc400)
        at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
    #12 0x00007ffff6046f1b in QtPrivate::FunctionPointer<void
(KTextEditor::ViewPrivate::*)()>::call<QtP--Type <RET> for more, q to quit, c
to continue without paging--
    rivate::List<>, void>(void (KTextEditor::ViewPrivate::*)(),
KTextEditor::ViewPrivate*, void**) (
        f=(void (KTextEditor::ViewPrivate::*)(KTextEditor::ViewPrivate *
const)) 0x7ffff6035a08 <KTextEditor::ViewPrivate::wordLeft()>,
o=0x55555aa62bb0, arg=0x7fffffffc400)
        at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
    #13 0x00007ffff60442ab in QtPrivate::QSlotObject<void
(KTextEditor::ViewPrivate::*)(), QtPrivate::List<>, void>::impl(int,
QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, 
        this_=0x55555ab51510, r=0x55555aa62bb0, a=0x7fffffffc400, ret=0x0)
        at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
    #14 0x00007ffff69f35a6 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #15 0x00007ffff760fb62 in QAction::triggered(bool) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
    #16 0x00007ffff76123a1 in QAction::activate(QAction::ActionEvent) ()
       from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
    #17 0x00007ffff7612f67 in QAction::event(QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
    #18 0x00007ffff761615f in QApplicationPrivate::notify_helper(QObject*,
QEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
    #19 0x00007ffff69bcfca in QCoreApplication::notifyInternal2(QObject*,
QEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #20 0x00007ffff6f5bcab in QShortcutMap::dispatchEvent(QKeyEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Gui.so.5
    #21 0x00007ffff6f5c66b in QShortcutMap::tryShortcut(QKeyEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Gui.so.5
    #22 0x00007ffff6f05cae in
QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int,
QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString
const&, bool, unsigned short) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
    #23 0x00007ffff6f284cb in
QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*)
() from /lib/x86_64-linux-gnu/libQt5Gui.so.5
    #24 0x00007ffff0caf6b8 in ?? ()
    --Type <RET> for more, q to quit, c to continue without paging--
       from
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so
    #25 0x00007ffff69f35a6 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #26 0x00007ffff6cbeb8f in
QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) ()
       from /lib/x86_64-linux-gnu/libQt5DBus.so.5
    #27 0x00007ffff69e8ff1 in QObject::event(QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
    #28 0x00007ffff761615f in QApplicationPrivate::notify_helper(QObject*,
QEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
    #29 0x00007ffff69bcfca in QCoreApplication::notifyInternal2(QObject*,
QEvent*) ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #30 0x00007ffff69bfa01 in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #31 0x00007ffff6a14e93 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #32 0x00007ffff404fe6b in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
    #33 0x00007ffff4050118 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #34 0x00007ffff40501cf in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
    #35 0x00007ffff6a1451f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #36 0x00007ffff69bb98b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
       from /lib/x86_64-linux-gnu/libQt5Core.so.5
    #37 0x00007ffff69c3c00 in QCoreApplication::exec() () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
    #38 0x0000555555561c24 in main (argc=1, argv=0x7fffffffdcf8)
        at
/home/p4bl0/projects/kde/src/kde/applications/kate/apps/kate/main.cpp:607


EXPECTED RESULT
Cursor moves back to the beginning of the line.


SOFTWARE/OS VERSIONS
Linux: Debian stable
KDE Plasma Version: 5.20.5
KDE Frameworks Version: Kate and KTextEditor and all their dependencies are
compiled from master branches
Qt Version: 5.15.2

ADDITIONAL INFORMATION
I will try to submit a fix asap :).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to