D18562: Determine isDirectory by "Folder = " field in 7z plugin

Elvis Angelaccio noreply at phabricator.kde.org
Sun Feb 10 19:28:18 GMT 2019


elvisangelaccio requested changes to this revision.
elvisangelaccio added a comment.
This revision now requires changes to proceed.


  Thanks, that fixed the tests.
  
  However, I'm hitting the `Q_ASSERT` in `Archive::Entry::appendEntry` when opening any 7z archive:
  
    #3  0x00007f30665c8c28 in qt_assert(char const*, char const*, int) () from /usr/lib/libQt5Core.so.5
    #4  0x00007f306893cb07 in Kerfuffle::Archive::Entry::appendEntry (this=0x55d5c11f01d0, entry=0x55d5c139b3f0) at ../kerfuffle/archiveentry.cpp:85
    #5  0x00007f30524f97ea in ArchiveModel::insertEntry (this=0x55d5c11654f0, entry=0x55d5c139b3f0, behaviour=ArchiveModel::DoNotNotifyViews) at ../part/archivemodel.cpp:559
    #6  0x00007f30524fac2d in ArchiveModel::newEntry (this=0x55d5c11654f0, receivedEntry=0x55d5c139b3f0, behaviour=ArchiveModel::DoNotNotifyViews) at ../part/archivemodel.cpp:534
    #7  0x00007f30524facb2 in ArchiveModel::slotListEntry (this=0x55d5c11654f0, entry=0x55d5c139b3f0) at ../part/archivemodel.cpp:456
    #8  0x00007f3052502536 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<Kerfuffle::Archive::Entry*>, void, void (ArchiveModel::*)(Kerfuffle::Archive::Entry*)>::call (f=
        (void (ArchiveModel::*)(ArchiveModel * const, Kerfuffle::Archive::Entry *)) 0x7f30524fac90 <ArchiveModel::slotListEntry(Kerfuffle::Archive::Entry*)>, o=0x55d5c11654f0, arg=0x7ffc799e5090) at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
    #9  0x00007f3052502493 in QtPrivate::FunctionPointer<void (ArchiveModel::*)(Kerfuffle::Archive::Entry*)>::call<QtPrivate::List<Kerfuffle::Archive::Entry*>, void> (f=
        (void (ArchiveModel::*)(ArchiveModel * const, Kerfuffle::Archive::Entry *)) 0x7f30524fac90 <ArchiveModel::slotListEntry(Kerfuffle::Archive::Entry*)>, o=0x55d5c11654f0, arg=0x7ffc799e5090) at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
    #10 0x00007f30525023b6 in QtPrivate::QSlotObject<void (ArchiveModel::*)(Kerfuffle::Archive::Entry*), QtPrivate::List<Kerfuffle::Archive::Entry*>, void>::impl (which=1, this_=0x55d5c17f2e10, r=0x55d5c11654f0, a=0x7ffc799e5090, ret=0x0)
        at /usr/include/qt/QtCore/qobjectdefs_impl.h:414
    #11 0x00007f30667ea9d0 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
    #12 0x00007f3068949736 in Kerfuffle::Job::newEntry (this=0x55d5c12de240, _t1=0x55d5c139b3f0) at kerfuffle/kerfuffle_autogen/EWIEGA46WW/moc_jobs.cpp:216
    #13 0x00007f30688f2bcd in Kerfuffle::Job::onEntry (this=0x55d5c12de240, entry=0x55d5c139b3f0) at ../kerfuffle/jobs.cpp:184
    #14 0x00007f30688fad86 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<Kerfuffle::Archive::Entry*>, void, void (Kerfuffle::Job::*)(Kerfuffle::Archive::Entry*)>::call (f=&virtual table offset 168, o=0x55d5c12de240, arg=0x7ffc799e5320)
        at /usr/include/qt/QtCore/qobjectdefs_impl.h:152
    #15 0x00007f30688face3 in QtPrivate::FunctionPointer<void (Kerfuffle::Job::*)(Kerfuffle::Archive::Entry*)>::call<QtPrivate::List<Kerfuffle::Archive::Entry*>, void> (f=&virtual table offset 168, o=0x55d5c12de240, arg=0x7ffc799e5320)
        at /usr/include/qt/QtCore/qobjectdefs_impl.h:185
    #16 0x00007f30688fac06 in QtPrivate::QSlotObject<void (Kerfuffle::Job::*)(Kerfuffle::Archive::Entry*), QtPrivate::List<Kerfuffle::Archive::Entry*>, void>::impl (which=1, this_=0x55d5c16d3250, r=0x55d5c12de240, a=0x7ffc799e5320, ret=0x0)
        at /usr/include/qt/QtCore/qobjectdefs_impl.h:414
    #17 0x00007f30667ea9d0 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
    #18 0x00007f3068946cc6 in Kerfuffle::ReadOnlyArchiveInterface::entry (this=0x55d5c1bfe1f0, _t1=0x55d5c139b3f0) at kerfuffle/kerfuffle_autogen/EWIEGA46WW/moc_archiveinterface.cpp:267
    #19 0x00007f3050e71e97 in CliPlugin::readListLine (this=0x55d5c1bfe1f0, line=...) at ../plugins/cli7zplugin/cliplugin.cpp:271
    #20 0x00007f306892470b in Kerfuffle::CliInterface::handleLine (this=0x55d5c1bfe1f0, line=...) at ../kerfuffle/cliinterface.cpp:931
    #21 0x00007f3068923a40 in Kerfuffle::CliInterface::readStdout (this=0x55d5c1bfe1f0, handleAll=false) at ../kerfuffle/cliinterface.cpp:816
    #22 0x00007f3068925dae in Kerfuffle::CliInterface::runProcess(QString const&, QStringList const&)::$_1::operator()() const (this=0x55d5c20ef790) at ../kerfuffle/cliinterface.cpp:291
  
  I think I was getting the same crash with the first version of the patch, so there is probably something else still going on.

REPOSITORY
  R36 Ark

REVISION DETAIL
  https://phabricator.kde.org/D18562

To: gepardo, elvisangelaccio
Cc: elvisangelaccio, kde-utils-devel, #ark, tctara
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-utils-devel/attachments/20190210/cf97ee49/attachment.html>


More information about the Kde-utils-devel mailing list