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

            Bug ID: 425475
           Summary: deleteLater calls only once in libzip / libarchive
                    plugins destructor
           Product: ark
           Version: unspecified
          Platform: Neon Packages
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: elvis.angelac...@kde.org
          Reporter: alexey.iva...@gmail.com
                CC: rthoms...@gmail.com
  Target Milestone: ---

STEPS TO REPRODUCE
1. disable all plugins but libzipplugin, restart ark
2. download test file
https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.zip
3. merge zip_fclose fixes
https://invent.kde.org/utilities/ark/-/merge_requests/4
3. open test zip in ark, now reopen it multiple times via menu "Open Recent"

It happens because
https://invent.kde.org/utilities/ark/-/blob/master/plugins/libzipplugin/libzipplugin.cpp#L66
this calls only once instead of 25361 times and m_emmitedEntries never deleted
at all.

if you test debugs like this:

libzipplugin.cpp:

LibzipPlugin::~LibzipPlugin()
{
    qDebug() << __PRETTY_FUNCTION__ << thread();
    for (auto e : m_emittedEntries) {
        qDebug() << "e:" << e->name();
        // Entries might be passed to pending slots, so we just schedule their
deletion.
        e->deleteLater();
    }
}

archiveentry.cpp:
Archive::Entry::~Entry()
{
    qDebug() << __FUNCTION__;
}

you will notice that only last entry from m_emittedEntries actually calls
deleteLater().

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE Neon
(available in About System)
KDE Plasma Version: 5.19.4
KDE Frameworks Version: 5.72.0
Qt Version: 5.14.2

ADDITIONAL INFORMATION

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

Reply via email to