[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-frameworks-devel
Subject:    KDirListerCache destroy comment in kcoredirlister.cpp
From:       René_J.V. Bertin <rjvbertin () gmail ! com>
Date:       2018-01-29 10:32:56
Message-ID: 2037473.NHaoCPBjsg () bola
[Download RAW message or body]

Hi,

Researching an issue I'm seeing (hang/crash on exit) I found the following vestigial \
out-commented code the KCoreDirListerCache ctor in kcoredirlister.cpp:

    // Probably not needed in KF5 anymore:
    // The use of KUrl::url() in ~DirItem (sendSignal) crashes if the static for \
QRegExpEngine got deleted already,  // so we need to destroy the KCoreDirListerCache \
before that.  //qAddPostRoutine(kDirListerCache.destroy);

WHat's clear is that this no longer works: there is no `destroy` method in whatever \
kDirListerCache's real class is.

Git blame is of little help here; can anyone remember why the explicit pro-active \
delete was deemed unnecessary, and what the exact symptoms were when this was not \
done in KDE4?

FWIW, the crash (or hang) happens during QRegExpEngine take-down when I have used a \
KDE file dialog in a "pure Qt" application via a mechanism built on code taken from \
the plasma integration plugin. It does not happen in KF5 applications like kate or \
kdialog. As far as I know those applications obtain the KDE file dialog from the \
platform plugin too. The difference must be in the order in which certain things are \
deleted during the global destruction phase, but which and how to restore the proper \
order. (The Audacious audioplayer had a similar issue on exit in its Qt5 version, \
which I traced to the QApplication instance being deleted via atexit; a lucky shot in \
the dark that makes a lot of sense in retrospect.)

Thanks for any pointers,
R.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic