https://bugs.kde.org/show_bug.cgi?id=444516
Dmitry Kazakov <dimul...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CONFIRMED |RESOLVED Resolution|--- |FIXED Latest Commit| |https://invent.kde.org/grap | |hics/krita/commit/f3128cdb8 | |c6e50f92b5dc7599c4118c3660f | |ced0 --- Comment #33 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit f3128cdb8c6e50f92b5dc7599c4118c3660fced0 by Dmitry Kazakov. Committed on 19/11/2021 at 11:59. Pushed by dkazakov into branch 'master'. Fix random memory corruptions when manipulating layers too quickly It turned out, when the user switches visibility of a layer, the event loop can be entered recursively (due to KisBusyWaitBroker), it could lead to memory corruptions due to the broken pointers to KisNodeDummy stored in QModelIndex objects. The problem is fixed by forcefully syncing the node manipulation signals to non-recursive event processing using a new KisSynchronizedConnection class. See documentation in it for details. M +1 -0 libs/global/CMakeLists.txt A +71 -0 libs/global/KisMpl.h [License: GPL(v2.0+)] A +71 -0 libs/global/KisSynchronizedConnection.cpp [License: GPL(v2.0+)] A +214 -0 libs/global/KisSynchronizedConnection.h [License: GPL(v2.0+)] M +73 -1 libs/ui/KisApplication.cpp M +17 -12 libs/ui/flake/kis_dummies_facade_base.cpp M +0 -4 libs/ui/flake/kis_dummies_facade_base.h M +5 -1 libs/ui/kis_node_manager.cpp https://invent.kde.org/graphics/krita/commit/f3128cdb8c6e50f92b5dc7599c4118c3660fced0 -- You are receiving this mail because: You are watching all bug changes.