Summary: | Transform on Local Selection crash | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | sinozzuke <sinozzuke> |
Component: | General | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | halla, sinozzuke |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
sinozzuke
2010-12-23 03:36:27 UTC
Ack. Dmitry.... Created attachment 55331 [details]
New crash information added by DrKonqi
krita (2.4 Alpha 1) on KDE Platform 4.5.90 (4.6 RC1) using Qt 4.7.1
- What I was doing when the application crashed:
The same error. Make a Local Selection, select it, and then transform tool. Get the crash
-- Backtrace (Reduced):
#11 0x00007ff2e0349c0a in qt_assert (assertion=0x5317 <Address 0x5317 out of bounds>, file=0x6 <Address 0x6 out of bounds>, line=-1) at global/qglobal.cpp:2027
#12 0x00007ff2df5c23f6 in KisMementoManager::getMemento (this=0x7dfa600) at /home/sinozzuke/kde4/calligra/src/krita/image/tiles3/kis_memento_manager.cc:231
#13 0x00007ff2df79c715 in getMemento (this=0x87be970, name=<value optimized out>, device=<value optimized out>, parent=<value optimized out>)
at /home/sinozzuke/kde4/calligra/src/krita/image/tiles3/kis_tiled_data_manager.h:150
#14 getMemento (this=0x87be970, name=<value optimized out>, device=<value optimized out>, parent=<value optimized out>) at /home/sinozzuke/kde4/calligra/src/krita/image/kis_datamanager.h:89
#15 KisTransactionData::KisTransactionData (this=0x87be970, name=<value optimized out>, device=<value optimized out>, parent=<value optimized out>)
at /home/sinozzuke/kde4/calligra/src/krita/image/kis_transaction_data.cpp:53
And another assert: krita(13006): "[ 0: /usr/lib/libkdecore.so.5(kRealBacktrace(int)+0x45) [0xb4b70735] 1: /home/boud/kde/inst/lib/libkritaimage.so.8(KisMementoManager::getMemento()+0x3b) [0xb6e0e20b] 2: /home/boud/kde/inst/lib/libkritaimage.so.8(KisTransactionData::KisTransactionData(QString const&, KisSharedPtr<KisPaintDevice>, QUndoCommand*)+0x169) [0xb7023329] 3: /home/boud/kde/inst/lib/libkritaimage.so.8(KisSelectedTransactionData::KisSelectedTransactionData(QString const&, KisSharedPtr<KisNode>, QUndoCommand*)+0x282) [0xb7001842] 4: /home/boud/kde/master/lib/kde4/kritatooltransform.so(+0xc148) [0xac09c148] 5: /home/boud/kde/master/lib/kde4/kritatooltransform.so(+0xc3e2) [0xac09c3e2] 6: /home/boud/kde/master/lib/kde4/kritatooltransform.so(+0x1453a) [0xac0a453a] 7: /home/boud/kde/master/lib/kde4/kritatooltransform.so(+0x27f0e) [0xac0b7f0e] 8: /home/boud/kde/master/lib/kde4/kritatooltransform.so(+0x2818e) [0xac0b818e] 9: /usr/lib/libQtCore.so.4(QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**)+0x3d) [0xb771d0ed] ] " ASSERT: "!namedTransactionInProgress()" in file /home/boud/kde/src/calligra/krita/image/tiles3/kis_memento_manager.cc, line 231 Aborted This asssert happens because two transactions are opened on the same paint device at the same time. This happens because of the following: 1) KisTransformTool opens KisSelectedTransaction on a mask (i can't say whether this is right or wrong). 2) KisSelectedTransaction opens two transactions on two devices: mask->paintDevice() and parentLayer->selection(). This is ok for all the nodes except of selection mask, because it *is* the selection of the node itself. So it happens that mask->paintDevice() and parentLayer->selection() coincide. Ok... but what now? Even if we implement the selection plan, this bug won't be automatically fixed, will it? Automatically -- not. KisSelectedTransaction should check whether two devices (selection and paint) coincide. I tried to do it this morning, but i failed. It returns different devices, though they should be the same. Either my assumption is wrong, or there is some other bug somewhere as well. I'll check this later. Git commit e78752f3b9ebe3b17d4f8645b70f057d4191ba53 by Dmitry Kazakov. Committed on 10/02/2012 at 13:04. Pushed by dkazakov into branch 'shapes-as-node-model-kazakov'. Fix crash when transform local selections M +1 -1 krita/image/kis_mask.cc M +14 -7 krita/image/kis_selected_transaction_data.cpp M +1 -1 krita/plugins/tools/tool_transform2/kis_tool_transform.cc http://commits.kde.org/calligra/e78752f3b9ebe3b17d4f8645b70f057d4191ba53 |