Bug 363026

Summary: Crash while changing font-size on the artistic text.
Product: [Applications] krita Reporter: wolthera <griffinvalley>
Component: Layers/VectorAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: halla
Priority: NOR    
Version First Reported In: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description wolthera 2016-05-13 14:28:59 UTC
Artistic text crashes when changing font-size. This has a different gdb result than changing font-type.

Reproducible: Always

Steps to Reproduce:
1. Make artistic text
2. Select a part
3. Change font.
4. crash!



gdb backtrace:
hread 1 "krita" received signal SIGSEGV, Segmentation fault.
0x00007ffff5f8198c in QPainterPath::elementCount() const ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
(gdb) thread apply all backtrace

Thread 23 (Thread 0x7fff926ca700 (LWP 12165)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff5599738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5595467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffef1506fa in start_thread (arg=0x7fff926ca700)
    at pthread_create.c:333
#5  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 22 (Thread 0x7fffa553a700 (LWP 12164)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff5599738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5595467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff5598c89 in ?? ()
---Type <return> to continue, or q <return> to quit---
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffef1506fa in start_thread (arg=0x7fffa553a700)
    at pthread_create.c:333
#5  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 21 (Thread 0x7fff91ec9700 (LWP 12163)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
#1  0x00007ffff5599738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5595467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffef1506fa in start_thread (arg=0x7fff91ec9700)
    at pthread_create.c:333
#5  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 20 (Thread 0x7fffc0340700 (LWP 12162)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
---Type <return> to continue, or q <return> to quit---
#1  0x00007ffff5599738 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5595467 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffef1506fa in start_thread (arg=0x7fffc0340700)
    at pthread_create.c:333
#5  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 11 (Thread 0x7fffa5d3b700 (LWP 12151)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff55997eb in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff676faa2 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#3  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007fffef1506fa in start_thread (arg=0x7fffa5d3b700)
    at pthread_create.c:333
#5  0x00007ffff4c94b5d in clone ()
---Type <return> to continue, or q <return> to quit---
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 10 (Thread 0x7fffa65d7700 (LWP 12150)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff55997eb in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5593116 in QSemaphore::tryAcquire(int, int) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff311d7b3 in KisTileDataSwapper::waitForWork (
    this=<optimized out>)
    at /home/krita/kde/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007ffff311d9aa in KisTileDataSwapper::run (
    this=0x7ffff359f440 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>)
    at /home/krita/kde/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x00007fffef1506fa in start_thread (arg=0x7fffa65d7700)
    at pthread_create.c:333
#7  0x00007ffff4c94b5d in clone ()
---Type <return> to continue, or q <return> to quit---
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 9 (Thread 0x7fffc0b41700 (LWP 12149)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff55997eb in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#2  0x00007ffff5592e8b in QSemaphore::acquire(int) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#3  0x00007ffff3103b5e in KisTileDataPooler::waitForWork (
    this=0x7ffff359f400 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>)
    at /home/krita/kde/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:165
#4  0x00007ffff310431a in KisTileDataPooler::run (
    this=0x7ffff359f400 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder>)
    at /home/krita/kde/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:187
#5  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x00007fffef1506fa in start_thread (arg=0x7fffc0b41700)
    at pthread_create.c:333
#7  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
---Type <return> to continue, or q <return> to quit---

Thread 6 (Thread 0x7fffcbfff700 (LWP 12143)):
#0  0x00007ffff4c88e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee82531c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee82542c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff57aa4fc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#4  0x00007ffff5758efa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#5  0x00007ffff559438c in QThread::exec() ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#6  0x00007fffef37bcd5 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5DBus.so.5
#7  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#8  0x00007fffef1506fa in start_thread (arg=0x7fffcbfff700)
    at pthread_create.c:333
#9  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fffd903c700 (LWP 12142)):
#0  0x00007ffff4c88e8d in poll () at ../sysdeps/unix/syscall-template.S:84
---Type <return> to continue, or q <return> to quit---
#1  0x00007fffee82531c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee8256a2 in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffde499906 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007fffee84bb45 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffef1506fa in start_thread (arg=0x7fffd903c700)
    at pthread_create.c:333
#6  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7fffd983d700 (LWP 12141)):
#0  0x00007ffff4c88e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee82531c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee82542c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffee825469 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffee84bb45 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffef1506fa in start_thread (arg=0x7fffd983d700)
    at pthread_create.c:333
#6  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7fffda03e700 (LWP 12140)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007ffff4c88e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffee82531c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffee82542c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffda04628d in ?? ()
   from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007fffee84bb45 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fffef1506fa in start_thread (arg=0x7fffda03e700)
    at pthread_create.c:333
#6  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fffe485d700 (LWP 12139)):
#0  0x00007ffff4c88e8d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff35b8c62 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007ffff35ba8d7 in xcb_wait_for_event ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe570cdc9 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#4  0x00007ffff5598c89 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#5  0x00007fffef1506fa in start_thread (arg=0x7fffe485d700)
    at pthread_create.c:333
---Type <return> to continue, or q <return> to quit---
#6  0x00007ffff4c94b5d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7ffff7f0f8c0 (LWP 12135)):
#0  0x00007ffff5f8198c in QPainterPath::elementCount() const ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#1  0x00007ffff5fceaf8 in QTransform::map(QPainterPath const&) const ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#2  0x00007fffab5f02f8 in ArtisticTextShape::createOutline (
    this=this@entry=0xe24bcc0)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextShape.cpp:332
#3  0x00007fffab5f05ad in ArtisticTextShape::updateSizeAndPosition (
    this=this@entry=0xe24bcc0, global=global@entry=false)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextShape.cpp:908
#4  0x00007fffab5f144b in ArtisticTextShape::finishTextUpdate (
    this=this@entry=0xe24bcc0)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextShape.cpp:1053
#5  0x00007fffab5f31e6 in ArtisticTextShape::finishTextUpdate (this=0xe24bcc0)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextShape.cpp:1049
---Type <return> to continue, or q <return> to quit---
#6  ArtisticTextShape::setFont (this=0xe24bcc0, charIndex=<optimized out>, 
    charCount=<optimized out>, font=...)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextShape.cpp:471
#7  0x00007fffab60779e in ChangeTextFontCommand::redo (this=0xf023f40)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ChangeTextFontCommand.cpp:51
#8  0x00007ffff181415e in KUndo2Command::redo (this=0xf024d10)
    at /home/krita/kde/src/krita/libs/kundo2/kundo2stack.cpp:237
#9  0x00007ffff18160f6 in KUndo2Command::redoMergedCommands (this=0xf024d10)
    at /home/krita/kde/src/krita/libs/kundo2/kundo2stack.cpp:397
#10 0x00007ffff18170b8 in KUndo2QStack::push (this=0xca6d340, cmd=0xf024d10)
    at /home/krita/kde/src/krita/libs/kundo2/kundo2stack.cpp:711
#11 0x00007fffab5feed6 in ArtisticTextTool::changeFontProperty (
    this=this@entry=0xc9519b0, 
    property=property@entry=ArtisticTextTool::SizeProperty, value=...)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextTool.cpp:881
#12 0x00007fffab5ff1e4 in ArtisticTextTool::setFontSize (this=0xc9519b0, 
    size=<optimized out>)
    at /home/krita/kde/src/krita/plugins/flake/artistictextshape/ArtisticTextTool.cpp:913
#13 0x00007ffff5783cef in QMetaObject::activate(QObject*, int, int, void**) ()
---Type <return> to continue, or q <return> to quit---
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#14 0x00007fffab60a1c3 in ArtisticTextShapeConfigWidget::fontSizeChanged (
    _t1=19, this=<optimized out>)
    at /home/krita/kde/build/plugins/flake/artistictextshape/moc_ArtisticTextShapeConfigWidget.cpp:153
#15 ArtisticTextShapeConfigWidget::qt_static_metacall (_o=<optimized out>, 
    _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/krita/kde/build/plugins/flake/artistictextshape/moc_ArtisticTextShapeConfigWidget.cpp:82
#16 0x00007ffff5783cef in QMetaObject::activate(QObject*, int, int, void**) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#17 0x00007ffff68cb32e in QSpinBox::valueChanged(int) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#18 0x00007ffff66dac63 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#19 0x00007ffff664b75a in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#20 0x00007ffff664c6c6 in QAbstractSpinBox::stepBy(int) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#21 0x00007ffff664ab4e in QAbstractSpinBox::keyPressEvent(QKeyEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#22 0x00007ffff6590544 in QWidget::event(QEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff664d7f3 in QAbstractSpinBox::event(QEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#24 0x00007ffff654e04c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#25 0x00007ffff65522a9 in QApplication::notify(QObject*, QEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#26 0x00007ffff78dc457 in KisApplication::notify (this=<optimized out>, 
    receiver=0xf8629d0, event=0x7fffffffd180)
    at /home/krita/kde/src/krita/libs/ui/KisApplication.cpp:501
#27 0x00007ffff575ae80 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#28 0x00007ffff65ad6f3 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#29 0x00007ffff654e04c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#30 0x00007ffff6552488 in QApplication::notify(QObject*, QEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Widgets.so.5
#31 0x00007ffff78dc457 in KisApplication::notify (this=<optimized out>, 
    receiver=0xc528cb0, event=0x7fffffffd180)
    at /home/krita/kde/src/krita/libs/ui/KisApplication.cpp:501
#32 0x00007ffff575ae80 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#33 0x00007ffff5cf7738 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemI---Type <return> to continue, or q <return> to quit---
nterfacePrivate::KeyEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#34 0x00007ffff5cfc465 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#35 0x00007ffff5cdd6a3 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Gui.so.5
#36 0x00007fffe5767720 in ?? ()
   from /home/krita/Qt/5.6/gcc_64/plugins/platforms/../../lib/libQt5XcbQpa.so.5
#37 0x00007fffee825127 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007fffee825380 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007fffee82542c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff57aa4e7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#41 0x00007ffff5758efa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#42 0x00007ffff5760d9d in QCoreApplication::exec() ()
   from /home/krita/Qt/5.6/gcc_64/lib/libQt5Core.so.5
#43 0x0000000000404a15 in main (argc=1, argv=<optimized out>)
    at /home/krita/kde/src/krita/krita/main.cc:229
(gdb)
Comment 1 Halla Rempt 2016-05-14 10:00:10 UTC
Git commit f843bdfd0859f24077ae0fe48d752a78ffbdf64e by Boudewijn Rempt.
Committed on 14/05/2016 at 09:59.
Pushed by rempt into branch 'master'.

Revert "First commit of improved RTL text editing for the artistic text shape"

This reverts commit 0ab16affe98e4b0957565bc6f43da9cd26e5f609.

This commit broke the cursor for LTR languages, selecing the font
and the font size.
Related: bug 363025, bug 363030

M  +19   -52   plugins/flake/artistictextshape/ArtisticTextShape.cpp
M  +2    -8    plugins/flake/artistictextshape/ArtisticTextShape.h

http://commits.kde.org/krita/f843bdfd0859f24077ae0fe48d752a78ffbdf64e