[bug]

Антон Сараев antonysaraev at gmail.com
Sun Dec 8 21:41:24 UTC 2013


Hi! As I understand git master has a bug: krita crashes when trying to complete
polyline (when connecting the last point with the first). The files
provided information
about crash and a patch that seems to be bug fixes.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20131209/2f5f744e/attachment.html>
-------------- next part --------------
Application: Krita (krita), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff3296f88c0 (LWP 29456))]

Thread 5 (Thread 0x7ff31996e700 (LWP 29463)):
#0  0x000000358240bd20 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff32dbb9906 in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQtCore.so.4
#2  0x00007ff32dbb58cb in QSemaphore::acquire(int) () from /lib64/libQtCore.so.4
#3  0x00007ff3328733de in KisTileDataPooler::waitForWork (this=0x263eae0) at /home/dancing-elf/kde4/src/calligra/krita/image/tiles3/kis_tile_data_pooler.cc:162
#4  0x00007ff33287346e in KisTileDataPooler::run (this=0x263eae0) at /home/dancing-elf/kde4/src/calligra/krita/image/tiles3/kis_tile_data_pooler.cc:184
#5  0x00007ff32dbb93df in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#6  0x0000003582407f33 in start_thread () from /lib64/libpthread.so.0
#7  0x0000003581cf4ead in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7ff31916d700 (LWP 29464)):
#0  0x000000358240bd20 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff32dbb9906 in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQtCore.so.4
#2  0x00007ff32dbb5cf3 in QSemaphore::tryAcquire(int, int) () from /lib64/libQtCore.so.4
#3  0x00007ff3328905c2 in KisTileDataSwapper::waitForWork (this=0x263eb18) at /home/dancing-elf/kde4/src/calligra/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007ff3328905dc in KisTileDataSwapper::run (this=0x263eb18) at /home/dancing-elf/kde4/src/calligra/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007ff32dbb93df in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#6  0x0000003582407f33 in start_thread () from /lib64/libpthread.so.0
#7  0x0000003581cf4ead in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7ff2f7614700 (LWP 29483)):
#0  0x000000358240bd20 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff32dbb9906 in QWaitCondition::wait(QMutex*, unsigned long) () from /lib64/libQtCore.so.4
#2  0x00007ff32f0b1fb6 in QFileInfoGatherer::run() () from /lib64/libQtGui.so.4
#3  0x00007ff32dbb93df in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#4  0x0000003582407f33 in start_thread () from /lib64/libpthread.so.0
#5  0x0000003581cf4ead in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7ff2f6e13700 (LWP 29484)):
#0  0x0000003581cec7b3 in select () from /lib64/libc.so.6
#1  0x00007ff32dced6f3 in qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) () from /lib64/libQtCore.so.4
#2  0x00007ff32dcf32f7 in QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) () from /lib64/libQtCore.so.4
#3  0x00007ff32dcf3782 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#4  0x00007ff32dcc012f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#5  0x00007ff32dcc047d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#6  0x00007ff32dbb6bdf in QThread::exec() () from /lib64/libQtCore.so.4
#7  0x00007ff32dca0a93 in QInotifyFileSystemWatcherEngine::run() () from /lib64/libQtCore.so.4
#8  0x00007ff32dbb93df in QThreadPrivate::start(void*) () from /lib64/libQtCore.so.4
#9  0x0000003582407f33 in start_thread () from /lib64/libpthread.so.0
#10 0x0000003581cf4ead in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ff3296f88c0 (LWP 29456)):
[KCrash Handler]
#5  0x0000003581c35c59 in raise () from /lib64/libc.so.6
#6  0x0000003581c37368 in abort () from /lib64/libc.so.6
#7  0x00007ff32dbaea54 in qt_message_output(QtMsgType, char const*) () from /lib64/libQtCore.so.4
#8  0x00007ff32dbaebf9 in qt_message(QtMsgType, char const*, __va_list_tag*) () from /lib64/libQtCore.so.4
#9  0x00007ff32dbaf501 in qFatal(char const*, ...) () from /lib64/libQtCore.so.4
#10 0x00007ff3328913af in kis_assert_common (assertion=0x7ff33301c9ad "mode() == KisTool::PAINT_MODE", file=0x7ff33301c960 "/home/dancing-elf/kde4/src/calligra/krita/ui/tool/kis_tool_polyline_base.cpp", line=93, throwException=false) at /home/dancing-elf/kde4/src/calligra/krita/image/kis_assert.cpp:64
#11 0x00007ff33289166b in kis_assert_recoverable (assertion=0x7ff33301c9ad "mode() == KisTool::PAINT_MODE", file=0x7ff33301c960 "/home/dancing-elf/kde4/src/calligra/krita/ui/tool/kis_tool_polyline_base.cpp", line=93) at /home/dancing-elf/kde4/src/calligra/krita/image/kis_assert.cpp:73
#12 0x00007ff332f62a8f in KisToolPolylineBase::endPrimaryAction (this=0x4140fe0, event=0x7fff105f3a00) at /home/dancing-elf/kde4/src/calligra/krita/ui/tool/kis_tool_polyline_base.cpp:93
#13 0x00007ff332dce1ac in KisToolProxy::forwardToTool (this=0x3750c00, state=KisToolProxy::END, action=KisTool::Primary, event=0x7fff105f41a0, docPoint=...) at /home/dancing-elf/kde4/src/calligra/krita/ui/canvas/kis_tool_proxy.cpp:166
#14 0x00007ff332dcdece in KisToolProxy::forwardEvent (this=0x3750c00, state=KisToolProxy::END, action=KisTool::Primary, event=0x7fff105f41a0, originalEvent=0x7fff105f41a0, lastTabletEvent=0x0, canvasOriginWorkaround=...) at /home/dancing-elf/kde4/src/calligra/krita/ui/canvas/kis_tool_proxy.cpp:119
#15 0x00007ff332fb71ad in KisToolInvocationAction::end (this=0x3751550, event=0x7fff105f41a0) at /home/dancing-elf/kde4/src/calligra/krita/ui/input/kis_tool_invocation_action.cpp:101
#16 0x00007ff332fbe20d in KisShortcutMatcher::tryEndRunningShortcut (this=0x3751150, button=Qt::LeftButton, event=0x7fff105f41a0) at /home/dancing-elf/kde4/src/calligra/krita/ui/input/kis_shortcut_matcher.cpp:410
#17 0x00007ff332fbd686 in KisShortcutMatcher::buttonReleased (this=0x3751150, button=Qt::LeftButton, event=0x7fff105f41a0) at /home/dancing-elf/kde4/src/calligra/krita/ui/input/kis_shortcut_matcher.cpp:194
#18 0x00007ff332fb2cea in KisInputManager::eventFilter (this=0x3751050, object=0x37544a0, event=0x7fff105f41a0) at /home/dancing-elf/kde4/src/calligra/krita/ui/input/kis_input_manager.cpp:549
#19 0x00007ff32dcc1756 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /lib64/libQtCore.so.4
#20 0x00007ff32ebb0ddc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQtGui.so.4
#21 0x00007ff32ebb78e9 in QApplication::notify(QObject*, QEvent*) () from /lib64/libQtGui.so.4
#22 0x00007ff33249e388 in KoApplication::notify (this=0x7fff105f47e0, receiver=0x37544a0, event=0x7fff105f41a0) at /home/dancing-elf/kde4/src/calligra/libs/main/KoApplication.cpp:549
#23 0x00007ff32dcc15ed in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /lib64/libQtCore.so.4
#24 0x00007ff32ebb7017 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib64/libQtGui.so.4
#25 0x00007ff32ec2c7cb in QETWidget::translateMouseEvent(_XEvent const*) () from /lib64/libQtGui.so.4
#26 0x00007ff32ec2b23c in QApplication::x11ProcessEvent(_XEvent*) () from /lib64/libQtGui.so.4
#27 0x00007ff32ec53680 in QEventDispatcherX11::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtGui.so.4
#28 0x00007ff32dcc012f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#29 0x00007ff32dcc047d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQtCore.so.4
#30 0x00007ff32dcc59bb in QCoreApplication::exec() () from /lib64/libQtCore.so.4
#31 0x00007ff333553f1f in kdemain (argc=1, argv=0x7fff105f4a38) at /home/dancing-elf/kde4/src/calligra/krita/main.cc:99
#32 0x0000000000400a72 in main (argc=1, argv=0x7fff105f4a38) at /home/dancing-elf/kde4/build/debug/krita/krita_dummy.cpp:3
-------------- next part --------------
diff --git a/krita/ui/tool/kis_tool_polyline_base.cpp b/krita/ui/tool/kis_tool_polyline_base.cpp
index a433e90..2692403 100644
--- a/krita/ui/tool/kis_tool_polyline_base.cpp
+++ b/krita/ui/tool/kis_tool_polyline_base.cpp
@@ -77,13 +77,14 @@ void KisToolPolylineBase::beginPrimaryAction(KoPointerEvent *event)
         return;
     }
 
+    setMode(KisTool::PAINT_MODE);
+
     if(m_dragging && m_closeSnappingActivated) {
         if (m_closeSnappingActivated) {
             m_points.append(m_points.first());
         }
         endStroke();
     } else {
-        setMode(KisTool::PAINT_MODE);
         m_dragging = true;
     }
 }


More information about the kimageshop mailing list