https://bugs.kde.org/show_bug.cgi?id=444516
Dmitry Kazakov <dimul...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Latest Commit|https://invent.kde.org/grap |https://invent.kde.org/grap |hics/krita/commit/a12ff2fa2 |hics/krita/commit/ae885d82e |74497a2a86fc059942ded11d1a9 |76dfe69c532a5d3da5141029f5a |10be |037f --- Comment #38 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit ae885d82e76dfe69c532a5d3da5141029f5a037f by Dmitry Kazakov. Committed on 25/11/2021 at 11:45. Pushed by dkazakov into branch 'krita/5.0'. 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/ae885d82e76dfe69c532a5d3da5141029f5a037f -- You are receiving this mail because: You are watching all bug changes.