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/f3128cdb8 |hics/krita/commit/a12ff2fa2
                   |c6e50f92b5dc7599c4118c3660f |74497a2a86fc059942ded11d1a9
                   |ced0                        |10be

--- Comment #35 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit a12ff2fa274497a2a86fc059942ded11d1a910be by Dmitry Kazakov.
Committed on 19/11/2021 at 12:08.
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/a12ff2fa274497a2a86fc059942ded11d1a910be

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to