https://bugs.kde.org/show_bug.cgi?id=463083

Daniel Vrátil <dvra...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
      Latest Commit|                            |https://invent.kde.org/pim/
                   |                            |messagelib/-/commit/624cee4
                   |                            |1de9780e73951913282eceb376f
                   |                            |d34788

--- Comment #4 from Daniel Vrátil <dvra...@kde.org> ---
Git commit 624cee41de9780e73951913282eceb376fd34788 by Daniel Vrátil.
Committed on 29/05/2023 at 12:40.
Pushed by dvratil into branch 'release/23.04'.

Fix crash when switching signed/encrypted emails very fast

Kleo::KeyCache internally uses a QEventLoop to block until it
finishes initializing. The initialization happens the first
time the user opens a signed or encrypted email. If they switch
to another email before the KeyCache is done initializing it
leads to a crash in MessageViewer, since message pointers change
while MessageViewer is still "blocked" in OTP.

To avoid the crash, and running a nested event loop in general,
this change introduces KeyCacheMemento, which allows to wait for
the KeyCache to initialize asynchronously before the MessagePart
queries it.

M  +4    -0    mimetreeparser/src/CMakeLists.txt
A  +61   -0    mimetreeparser/src/memento/compositememento.cpp     [License:
GPL(v2.0+)]
A  +60   -0    mimetreeparser/src/memento/compositememento.h     [License:
GPL(v2.0+)]
A  +50   -0    mimetreeparser/src/memento/keycachememento.cpp     [License:
GPL(v2.0+)]
A  +40   -0    mimetreeparser/src/memento/keycachememento.h     [License:
GPL(v2.0+)]
M  +55   -16   mimetreeparser/src/messagepart.cpp
M  +9    -1    mimetreeparser/src/messagepart.h

https://invent.kde.org/pim/messagelib/-/commit/624cee41de9780e73951913282eceb376fd34788

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to