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

            Bug ID: 437921
           Summary: crash when loading certain comic books with
                    subfolders.
           Product: peruse
           Version: master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: ad...@leinir.dk
          Reporter: griffinval...@gmail.com
  Target Milestone: ---

SUMMARY
This problem seems to happen most often with the Pepper and Carrot Volume 1
ACBF example file, on entries that are inside folders, but otherwise not
unique. I can open the file fine with ark.

Possible Fix
--------------

When I change the for loops from

for (const QString &entryName: entries)
    {

to

for(int i =0; i<entries.size(); i++)
    {
        QString entryName = entries.at(i);
}

I do not get this crash. I assume that this is the subtle difference that is
making the Q_FOREACH deprecation so controversial.

BACKTRACE
============
#0  std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=0x0) at
/usr/include/c++/9/bits/atomic_base.h:419
#1  QAtomicOps<int>::loadRelaxed<int> (_q_value=...) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
--Type <RET> for more, q to quit, c to continue without paging--
#2  0x00007fffe173dedc in QBasicAtomicInteger<int>::loadRelaxed (this=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
#3  0x00007fffe173db62 in QtPrivate::RefCount::ref (this=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:55
#4  0x00007fffe173dc55 in QString::QString (this=0x7fffffec7dc8, other=...) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1094
#5  0x00007fffe175c97f in operator+ (s1=..., s2=0x7fffe17b6777 "/") at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1534
#6  0x00007fffe1749f73 in recursiveEntries (dir=0x5555579263e0) at
/home/wolthera/Peruse/src/src/qtquick/ArchiveBookModel.cpp:194
#7  0x00007fffe174a416 in ArchiveBookModel::setFilename (this=0x5555578eebb0,
newFilename=...) at
/home/wolthera/Peruse/src/src/qtquick/ArchiveBookModel.cpp:232
#8  0x00007fffe176dd1b in BookListModel::contentModelItemsInserted
(this=0x555555c5e930, index=..., first=1047, last=1047) at
/home/wolthera/Peruse/src/src/qtquick/BookListModel.cpp:297
#9  0x00007fffe177237c in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1,
2>, QtPrivate::List<QModelIndex const&, int, int>, void, void
(BookListModel::*)(QModelIndex, int, int)>::call (f=(void
(BookListModel::*)(class BookListModel * const, class QModelIndex, int, int))
0x7fffe176cef2 <BookListModel::contentModelItemsInserted(QModelIndex, int,
int)>, o=0x555555c5e930, arg=0x7fffffec8380) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152
#10 0x00007fffe1771f2b in QtPrivate::FunctionPointer<void
(BookListModel::*)(QModelIndex, int, int)>::call<QtPrivate::List<QModelIndex
const&, int, int>, void> (f=(void (BookListModel::*)(class BookListModel *
const, class QModelIndex, int, int)) 0x7fffe176cef2
<BookListModel::contentModelItemsInserted(QModelIndex, int, int)>,
o=0x555555c5e930, arg=0x7fffffec8380) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185
#11 0x00007fffe1771aaa in QtPrivate::QSlotObject<void
(BookListModel::*)(QModelIndex, int, int), QtPrivate::List<QModelIndex const&,
int, int>, void>::impl (which=1, this_=0x555555a7f290, r=0x555555c5e930,
a=0x7fffffec8380, ret=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:418
#12 0x00007ffff64636fe in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff63cea92 in QAbstractItemModel::rowsInserted(QModelIndex const&,
int, int, QAbstractItemModel::QPrivateSignal) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff63d7652 in QAbstractItemModel::endInsertRows() () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fffe13e7993 in ContentList::fileFound (this=0x555555c008d0,
filePath=..., metaData=...) at
/home/wolthera/Peruse/src/src/contentlist/ContentList.cpp:149

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

Reply via email to