Bug 289746 - KRITA 2.4(b5): CRASH ON WINDOWS 7 WHILE MOVING FAST A LAYER TEXT
Summary: KRITA 2.4(b5): CRASH ON WINDOWS 7 WHILE MOVING FAST A LAYER TEXT
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 2.4-snapshots
Platform: Microsoft Windows Microsoft Windows
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-24 15:14 UTC by Silvio Grosso
Modified: 2012-02-11 08:24 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Silvio Grosso 2011-12-24 15:14:34 UTC
Version:           2.4-snapshots (using Devel) 
OS:                MS Windows

WINDOWS 7 - HOME PREMIUM (64 BIT)
KRITA 2.4 BETA 5

BTW, The "same" crash occurs on Ubuntu 11.10 (krita 2.4 beta 4)




Reproducible: Always

Steps to Reproduce:
1. Fire up Krita 2.4 beta 5;
2. Open no matter what image (Krita always crashes later);
3. create a new text; increase its size (because on Windows its default value,8.25 is really *small!*;
4. Select this text layer;
5. Move around very fast this text layer on the canvas;
6. Bang! Krita always crashes sooner or later :-)

You can download a video with all my steps to reproduce this crash on Windows7:
http://dl.dropbox.com/u/3095134/WINDOWS_7_KRITA_TEXT_CRASH.zip

Actual Results:  
krita 2.4 beta 5 crashes on Windows 7 while moving a text layer (the same occurs on Ubuntu 11.10)

Expected Results:  
Krita should not crash while moving a layer text very fast

I have tried to reproduce this same bug on:

UBUNTU 11.10 - 64 bit (Oneiric Ocelot) - UNITY SHELL
Kde 4.7.4
KRITA 2.4 - BETA 4 (installed through ppa:neon/ppa - project-neon)
OpenGl is disabled (Setting > Configures > Display)
Vbox 4.1.4 (Windows 7 as Host; Ubuntu is the guest)
My Distro is always updated - upgraded daily (so it is the ppa:neon/ppa package)

Here is the backtrace on Ubuntu Oneiric:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff53a9227 in QReadWriteLock::lockForRead (this=0xcfbae38)
    at thread/qreadwritelock.cpp:152
152	thread/qreadwritelock.cpp: File o directory non esistente.
	in thread/qreadwritelock.cpp
(gdb) thread apply all bt

Thread 21 (Thread 0x7fffc1bbd700 (LWP 2490)):
#0  0x00007ffff05533cb in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff53afeaf in QWaitConditionPrivate::wait (this=0x43c2af0, 
    time=30000) at thread/qwaitcondition_unix.cpp:86
#2  0x00007ffff53afc75 in QWaitCondition::wait (this=0x43c2a28, 
    mutex=0x43c2a20, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff539e28d in QThreadPoolThread::run (this=0x40e2d80)
    at concurrent/qthreadpool.cpp:140
#4  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x40e2d80)
    at thread/qthread_unix.cpp:331
#5  0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fffc3ec1700 (LWP 2481)):
#0  0x00007ffff78ce913 in select () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff5500095 in qt_safe_select (nfds=44, fdread=0x59da7c0, 
    fdwrite=0x59daa58, fdexcept=0x59dacf0, orig_timeout=0x0)
    at kernel/qcore_unix.cpp:82
#2  0x00007ffff550723a in QEventDispatcherUNIX::select (this=0x598a5b0, 
---Type <return> to continue, or q <return> to quit---
    nfds=44, readfds=0x59da7c0, writefds=0x59daa58, exceptfds=0x59dacf0, 
    timeout=0x0) at kernel/qeventdispatcher_unix.cpp:631
#3  0x00007ffff5505d57 in QEventDispatcherUNIXPrivate::doSelect (
    this=0x59da600, flags=..., timeout=0x0)
    at kernel/qeventdispatcher_unix.cpp:219
#4  0x00007ffff55081da in QEventDispatcherUNIX::processEvents (this=0x598a5b0, 
    flags=...) at kernel/qeventdispatcher_unix.cpp:918
#5  0x00007ffff54c8ed4 in QEventLoop::processEvents (this=0x7fffc3ec0d50, 
    flags=...) at kernel/qeventloop.cpp:149
#6  0x00007ffff54c9028 in QEventLoop::exec (this=0x7fffc3ec0d50, flags=...)
    at kernel/qeventloop.cpp:201
#7  0x00007ffff53ac15b in QThread::exec (this=0x588fc70)
    at thread/qthread.cpp:498
#8  0x00007ffff54a8057 in QInotifyFileSystemWatcherEngine::run (this=0x588fc70)
    at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x588fc70)
    at thread/qthread_unix.cpp:331
#10 0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fffc36c0700 (LWP 2480)):
---Type <return> to continue, or q <return> to quit---
#0  0x00007ffff055304c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff53afecb in QWaitConditionPrivate::wait (this=0x588fb70, 
    time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  0x00007ffff53afc75 in QWaitCondition::wait (this=0x588f4a0, 
    mutex=0x588f498, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff65dd42f in QFileInfoGatherer::run (this=0x588f488)
    at dialogs/qfileinfogatherer.cpp:214
#4  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x588f488)
    at thread/qthread_unix.cpp:331
#5  0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fffc4ec3700 (LWP 2475)):
#0  0x00007ffff055304c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff53afecb in QWaitConditionPrivate::wait (this=0x4369300, 
    time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  0x00007ffff53afc75 in QWaitCondition::wait (this=0x403db18, 
    mutex=0x403db10, time=18446744073709551615)
---Type <return> to continue, or q <return> to quit---
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff53ab2e1 in QSemaphore::tryAcquire (this=0x4368e90, n=1, 
    timeout=-1) at thread/qsemaphore.cpp:221
#4  0x00007fffd99ae7bc in KisTileDataSwapper::waitForWork (this=0x43689f8)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#5  0x00007fffd99ae7d6 in KisTileDataSwapper::run (this=0x43689f8)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#6  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x43689f8)
    at thread/qthread_unix.cpp:331
#7  0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#8  0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fffe038f700 (LWP 2474)):
#0  0x00007ffff055304c in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007ffff53afecb in QWaitConditionPrivate::wait (this=0x4368e20, 
    time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  0x00007ffff53afc75 in QWaitCondition::wait (this=0x40a80f8, 
    mutex=0x40a80f0, time=18446744073709551615)
---Type <return> to continue, or q <return> to quit---
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff53ab072 in QSemaphore::acquire (this=0x43689d0, n=1)
    at thread/qsemaphore.cpp:144
#4  0x00007fffd998e3e4 in KisTileDataPooler::waitForWork (this=0x43689c0)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tile_data_pooler.cc:162
#5  0x00007fffd998e473 in KisTileDataPooler::run (this=0x43689c0)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tile_data_pooler.cc:184
#6  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x43689c0)
    at thread/qthread_unix.cpp:331
#7  0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#8  0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fffc592a700 (LWP 2468)):
#0  0x00007ffff78ce913 in select () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff5500095 in qt_safe_select (nfds=30, fdread=0x41ac860, 
    fdwrite=0x41acaf8, fdexcept=0x41acd90, orig_timeout=0x0)
    at kernel/qcore_unix.cpp:82
#2  0x00007ffff550723a in QEventDispatcherUNIX::select (this=0x41a0d70, 
    nfds=30, readfds=0x41ac860, writefds=0x41acaf8, exceptfds=0x41acd90, 
---Type <return> to continue, or q <return> to quit---
    timeout=0x0) at kernel/qeventdispatcher_unix.cpp:631
#3  0x00007ffff5505d57 in QEventDispatcherUNIXPrivate::doSelect (
    this=0x41ac6a0, flags=..., timeout=0x0)
    at kernel/qeventdispatcher_unix.cpp:219
#4  0x00007ffff55081da in QEventDispatcherUNIX::processEvents (this=0x41a0d70, 
    flags=...) at kernel/qeventdispatcher_unix.cpp:918
#5  0x00007ffff54c8ed4 in QEventLoop::processEvents (this=0x7fffc5929d50, 
    flags=...) at kernel/qeventloop.cpp:149
#6  0x00007ffff54c9028 in QEventLoop::exec (this=0x7fffc5929d50, flags=...)
    at kernel/qeventloop.cpp:201
#7  0x00007ffff53ac15b in QThread::exec (this=0x41a4160)
    at thread/qthread.cpp:498
#8  0x00007ffff54a8057 in QInotifyFileSystemWatcherEngine::run (this=0x41a4160)
    at io/qfilesystemwatcher_inotify.cpp:248
#9  0x00007ffff53ae97f in QThreadPrivate::start (arg=0x41a4160)
    at thread/qthread_unix.cpp:331
#10 0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fffdfb8e700 (LWP 2467)):
#0  0x00007ffff78c9773 in poll () from /lib/x86_64-linux-gnu/libc.so.6
---Type <return> to continue, or q <return> to quit---
#1  0x00007ffff005ff68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff0060792 in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe7b18516 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff00852b6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff054eefc in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007ffff78d589d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffff7fab7a0 (LWP 2463)):
#0  0x00007ffff53a9227 in QReadWriteLock::lockForRead (this=0xcfbae38)
    at thread/qreadwritelock.cpp:152
#1  0x00007fffd998a24e in KisTileData::blockSwapping (this=0xcfbae00)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tile_data.h:92
#2  0x00007fffd998a5b4 in KisTile::blockSwapping (this=0x42515b0)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tile.cc:125
#3  0x00007fffd9989c24 in KisTile::lockForRead (this=0x42515b0)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tile.cc:163
#4  0x00007fffd99a8b14 in KisTiledRandomAccessor::lockTile (this=0xb6a5fe0, 
---Type <return> to continue, or q <return> to quit---
    tile=...)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tiled_random_accessor.h:52
#5  0x00007fffd99a899a in KisTiledRandomAccessor::fetchTileData (
    this=0xb6a5fe0, col=15, row=3)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tiled_random_accessor.cc:117
#6  0x00007fffd99a8847 in KisTiledRandomAccessor::moveTo (this=0xb6a5fe0, 
    x=968, y=225)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/tiles3/kis_tiled_random_accessor.cc:89
#7  0x00007fffd9aa511f in KisRandomConstAccessor::moveTo (this=0x7fffffffd090, 
    x=968, y=225)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_random_accessor.cpp:66
#8  0x00007fffd99c35ac in KisRandomAccessorPixelBase<KisRandomConstAccessor, unsigned char const*>::moveTo (this=0x7fffffffd090, x=968, y=225)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_random_accessor.h:167
#9  0x00007fffd9a7d343 in KisPaintDevice::createThumbnailDevice (
    this=0x42fee10, w=32, h=17, selection=0x0, rect=...)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_paint_device.cc:765
---Type <return> to continue, or q <return> to quit---
#10 0x00007fffd9a7d4ca in KisPaintDevice::createThumbnail (this=0x42fee10, 
    w=32, h=32, selection=0x0, rect=...)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_paint_device.cc:777
#11 0x00007fffd9a82be1 in PaintDeviceCache::createThumbnail (this=0x42a1360, 
    w=32, h=32)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_paint_device.cc:132
#12 0x00007fffd9a7d5bc in KisPaintDevice::createThumbnail (this=0x42fee10, 
    w=32, h=32)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/image/kis_paint_device.cc:784
#13 0x00007fffc9be7854 in KisUndoModel::addImage (this=0x59dcc50, idx=10)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/plugins/extensions/dockers/historydocker/KisUndoModel.cpp:237
#14 0x00007fffc9be471f in KisUndoModel::qt_metacall (this=0x59dcc50, 
    _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xb662370)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/obj-x86_64-linux-gnu/krita/plugins/extensions/dockers/historydocker/moc_KisUndoModel.cpp:80
#15 0x00007ffff54d34e8 in QMetaObject::metacall (object=0x59dcc50, 
    cl=QMetaObject::InvokeMetaMethod, idx=25, argv=0xb662370)
    at kernel/qmetaobject.cpp:237
#16 0x00007ffff54e2a70 in QMetaCallEvent::placeMetaCall (this=0xc817240, 
---Type <return> to continue, or q <return> to quit---
    object=0x59dcc50) at kernel/qobject.cpp:535
#17 0x00007ffff54e3cec in QObject::event (this=0x59dcc50, e=0xc817240)
    at kernel/qobject.cpp:1217
#18 0x00007ffff5f853b8 in QApplicationPrivate::notify_helper (this=0x6784f0, 
    receiver=0x59dcc50, e=0xc817240) at kernel/qapplication.cpp:4509
#19 0x00007ffff5f829d6 in QApplication::notify (this=0x7fffffffe0a0, 
    receiver=0x59dcc50, e=0xc817240) at kernel/qapplication.cpp:3909
#20 0x00007ffff6f4e8bf in KApplication::notify (this=0x7fffffffe0a0, 
    receiver=0x59dcc50, event=0xc817240)
    at /build/buildd/project-neon-kdelibs-2+git20111223+r92319/kdeui/kernel/kapplication.cpp:311
#21 0x00007ffff54cb30e in QCoreApplication::notifyInternal (this=
    0x7fffffffe0a0, receiver=0x59dcc50, event=0xc817240)
    at kernel/qcoreapplication.cpp:787
#22 0x00007ffff54cf091 in QCoreApplication::sendEvent (receiver=0x59dcc50, 
    event=0xc817240)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#23 0x00007ffff54cc532 in QCoreApplicationPrivate::sendPostedEvents (
    receiver=0x0, event_type=0, data=0x6028b0)
    at kernel/qcoreapplication.cpp:1428
#24 0x00007ffff5508091 in QEventDispatcherUNIX::processEvents (this=0x603fa0, 
    flags=...) at kernel/qeventdispatcher_unix.cpp:890
#25 0x00007ffff605e5ad in QEventDispatcherX11::processEvents (this=0x603fa0, 
---Type <return> to continue, or q <return> to quit---
    flags=...) at kernel/qeventdispatcher_x11.cpp:152
#26 0x00007ffff54c8ed4 in QEventLoop::processEvents (this=0x7fffffffe030, 
    flags=...) at kernel/qeventloop.cpp:149
#27 0x00007ffff54c9028 in QEventLoop::exec (this=0x7fffffffe030, flags=...)
    at kernel/qeventloop.cpp:201
#28 0x00007ffff54cba00 in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:1064
#29 0x00007ffff5f8254e in QApplication::exec () at kernel/qapplication.cpp:3783
#30 0x00007ffff7b9976a in kdemain (argc=1, argv=0x7fffffffe2a8)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/krita/main.cc:71
#31 0x0000000000400786 in main (argc=1, argv=0x7fffffffe2a8)
    at /build/buildd/project-neon-calligra-2+git20111122+r72996/obj-x86_64-linux-gnu/krita/krita_dummy.cpp:3
Comment 1 Halla Rempt 2011-12-26 11:49:56 UTC
Ack. THis also happens on Linux:

*** glibc detected *** krita: free(): corrupted unsorted chunks: 0x00000000093a3440 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x74c06)[0x7f7f991f4c06]
/usr/lib64/libQtCore.so.4(_ZN9QHashData11free_helperEPFvPNS_4NodeEE+0x7e)[0x7f7fa18d875e]
/home/boud/kde/inst/lib64/libkritaimage.so.9(+0x232267)[0x7f7fa0c2f267]
/home/boud/kde/inst/lib64/libkritaimage.so.9(_ZN20KisMemoryLeakTracker11dereferenceEPKvS1_+0x1de)[0x7f7fa0c2ddce]
/home/boud/kde/inst/lib64/libkritaimage.so.9(_ZN22KisRandomConstAccessorD2Ev+0x3a)[0x7f7fa0c6baea]
/home/boud/kde/inst/lib64/libkritaimage.so.9(_ZN10KisPainter6bitBltEii12KisSharedPtrI14KisPaintDeviceEiiii+0x85b)[0x7f7fa0afb89b]
/home/boud/kde/inst/lib64/libkritaui.so.9(+0x18643c)[0x7f7fa113143c]
/home/boud/kde/inst/lib64/libkritaui.so.9(+0x1874f0)[0x7f7fa11324f0]
/usr/lib64/libQtCore.so.4(_ZN7QObject5eventEP6QEvent+0x36a)[0x7f7fa19ba14a]
/usr/lib64/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xb4)[0x7f7f9a803c34]
/usr/lib64/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x121)[0x7f7f9a808ac1]
/usr/lib64/libkdeui.so.5(_ZN12KApplication6notifyEP7QObjectP6QEvent+0x36)[0x7f7f9b516e36]
/usr/lib64/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x8c)[0x7f7fa19a381c]
/usr/lib64/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x338)[0x7f7fa19a6bf8]
/usr/lib64/libQtCore.so.4(_ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x40)[0x7f7fa19d13d0]
/usr/lib64/libQtGui.so.4(+0x274de8)[0x7f7f9a8a7de8]
/usr/lib64/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0x32)[0x7f7fa19a2a22]
/usr/lib64/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x9f)[0x7f7fa19a2c1f]
/usr/lib64/libQtCore.so.4(_ZN16QCoreApplication4execEv+0x87)[0x7f7fa19a6de7]
/home/boud/kde/inst/lib64/libkdeinit4_krita.so(kdemain+0x22d)[0x7f7fa1cdbd3d]
/lib64/libc.so.6(__libc_start_main+0xed)[0x7f7f991a123d]
krita[0x400911]


Followed by an abort in the memory leak tracker.
Comment 2 Dmitry Kazakov 2012-02-11 08:24:07 UTC
Git commit 8ab58be502adeecf38b4c532d0afdde0c3b3f0bb by Dmitry Kazakov.
Committed on 11/02/2012 at 10:23.
Pushed by dkazakov into branch 'shapes-as-node-model-kazakov'.

Fix crash on moving shape layers

Now we use Qt::AutoConnection signal/slot connection to synchronize
UI and Image threads.

Above that, we do not move the paint device, because 1) we update the
shape anyway and 2) it causes concurrent access to the moving device
that causes a crash.

M  +30   -9    krita/ui/flake/kis_shape_layer.cc
M  +11   -0    krita/ui/flake/kis_shape_layer.h

http://commits.kde.org/calligra/8ab58be502adeecf38b4c532d0afdde0c3b3f0bb