Summary: | Crash when undoing "New layer from visible" if it's animated | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | paleh <paleh21669> |
Component: | Animation | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dimula73, penguinflyer2222 |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/426f99638a1fa712a6d8ded0eb9a523ef160551b | Version Fixed In: | |
Sentry Crash Report: |
Description
paleh
2023-12-07 18:26:20 UTC
Confirmed, here's the crash backtrace:
> 0 QtCore 0x10661b378 QMetaObject::cast(QObject*) const + 28
> 1 kritaanimationdocker.so 0x127dd1d4c KisNodeDummy* qobject_cast<KisNodeDummy*>(QObject*) + 12 (qobject.h:524) [inlined]
> 2 kritaanimationdocker.so 0x127dd1d4c TimelineNodeListKeeper::slotUpdateDummyContent(QObject*) + 36 (timeline_node_list_keeper.cpp:129)
> 3 QtCore 0x1066436a0 0x106444000 + 2094752
> 4 libkritaglobal.20.0.0.dylib 0x1025ca3f4 KisSignalMapper::mapped(QObject*) + 28 (moc_KisSignalMapper.cpp:200) [inlined]
> 5 libkritaglobal.20.0.0.dylib 0x1025ca3f4 KisSignalMapper::map(QObject*) + 768 (KisSignalMapper.cpp:231)
> 6 QtCore 0x10663c18c QObject::event(QEvent*) + 596
Git commit a60beeadbdf24c7ccb4ee1bfbc204d46f2081e0d by Dmitry Kazakov. Committed on 16/01/2024 at 15:49. Pushed by dkazakov into branch 'master'. Fix a crash when undoing "new from visible" of an animated layer M +1 -0 plugins/dockers/animation/timeline_node_list_keeper.cpp https://invent.kde.org/graphics/krita/-/commit/a60beeadbdf24c7ccb4ee1bfbc204d46f2081e0d The second part of the bug (onion skins switch) is still to be fixed. Git commit 8dc97144531e42055a2d31918c4674e30e1a7026 by Dmitry Kazakov. Committed on 19/01/2024 at 09:19. Pushed by dkazakov into branch 'master'. Fix a crash when quickly undo/redo new-from-visible+visibility-change This patch introduce multiple changes to fix the original bug: 1) KisSynchronizedConnection no longer behaves as if it were an auto-connection. Instead, **all** signals are now linearized via the qApp events queue. This fixes the reordering issue when two actions are undone/redone too quickly and one action is a legacy action that executes in the GUI thread (e.g. visibility change) and the other action is a "processing" action that executes in a worker thread (e.g. new-from-visible). "Auto"-style connection would reorder the actions on the basis of their execution thread. 2) Unittests still explicitly activate the "auto"-style connection, because they don't have KisApplication and the corresponding handler for KisSynchronizedConnectionEvent. 3) Fixes a bug in KisDummiesFacadeBase that caused double addition of the dummies on loading of the document. It could happen that two setImage() calls were called in the GUI thread **before** the addDummyImpl() had a chance to execute. M +14 -1 libs/global/KisSynchronizedConnection.cpp M +11 -0 libs/global/KisSynchronizedConnection.h M +1 -1 libs/store/tests/CMakeLists.txt M +10 -12 libs/ui/flake/kis_dummies_facade_base.cpp M +21 -11 plugins/dockers/animation/timeline_node_list_keeper.cpp M +1 -1 plugins/dockers/animation/timeline_node_list_keeper.h M +2 -0 sdk/tests/kistest.h M +2 -0 sdk/tests/simpletest.h https://invent.kde.org/graphics/krita/-/commit/8dc97144531e42055a2d31918c4674e30e1a7026 Git commit 61d78cc9288f9a575e6d3ba4c6fd4d387492dd04 by Dmitry Kazakov. Committed on 19/01/2024 at 09:19. Pushed by dkazakov into branch 'master'. Fix restoring layer's properties after new-layer-from-visible action M +63 -4 libs/image/kis_layer_utils.cpp https://invent.kde.org/graphics/krita/-/commit/61d78cc9288f9a575e6d3ba4c6fd4d387492dd04 Git commit 5daea563abf05caf0bb96f4522393f3d40f09cdb by Dmitry Kazakov. Committed on 28/02/2024 at 12:55. Pushed by dkazakov into branch 'kazakov/for-5.2'. Fix restoring layer's properties after new-layer-from-visible action M +63 -4 libs/image/kis_layer_utils.cpp https://invent.kde.org/graphics/krita/-/commit/5daea563abf05caf0bb96f4522393f3d40f09cdb Git commit c49291363eaf981fb4306b9f1f34da2e7aca7ce0 by Dmitry Kazakov. Committed on 28/02/2024 at 12:55. Pushed by dkazakov into branch 'kazakov/for-5.2'. Fix a crash when undoing "new from visible" of an animated layer M +1 -0 plugins/dockers/animation/timeline_node_list_keeper.cpp https://invent.kde.org/graphics/krita/-/commit/c49291363eaf981fb4306b9f1f34da2e7aca7ce0 Git commit 426f99638a1fa712a6d8ded0eb9a523ef160551b by Dmitry Kazakov. Committed on 28/02/2024 at 12:55. Pushed by dkazakov into branch 'kazakov/for-5.2'. Fix a crash when quickly undo/redo new-from-visible+visibility-change This patch introduce multiple changes to fix the original bug: 1) KisSynchronizedConnection no longer behaves as if it were an auto-connection. Instead, **all** signals are now linearized via the qApp events queue. This fixes the reordering issue when two actions are undone/redone too quickly and one action is a legacy action that executes in the GUI thread (e.g. visibility change) and the other action is a "processing" action that executes in a worker thread (e.g. new-from-visible). "Auto"-style connection would reorder the actions on the basis of their execution thread. 2) Unittests still explicitly activate the "auto"-style connection, because they don't have KisApplication and the corresponding handler for KisSynchronizedConnectionEvent. 3) Fixes a bug in KisDummiesFacadeBase that caused double addition of the dummies on loading of the document. It could happen that two setImage() calls were called in the GUI thread **before** the addDummyImpl() had a chance to execute. M +14 -1 libs/global/KisSynchronizedConnection.cpp M +11 -0 libs/global/KisSynchronizedConnection.h M +1 -1 libs/store/tests/CMakeLists.txt M +10 -12 libs/ui/flake/kis_dummies_facade_base.cpp M +21 -11 plugins/dockers/animation/timeline_node_list_keeper.cpp M +1 -1 plugins/dockers/animation/timeline_node_list_keeper.h M +2 -0 sdk/tests/kistest.h M +2 -0 sdk/tests/simpletest.h https://invent.kde.org/graphics/krita/-/commit/426f99638a1fa712a6d8ded0eb9a523ef160551b |