https://bugs.kde.org/show_bug.cgi?id=415340
--- Comment #2 from jimbo1qaz <jimbo1...@protonmail.com> --- The crash occurs after ~FilePrinterPreview finishes, while unwinding FilePrinterPreview's Qt child widgets (via QObjectPrivate::deleteChildren). Okular::Part::~Part calls Okular::Document::closeDocument calls d->saveDocumentInfo(). void DocumentPrivate::saveDocumentInfo() const { ... for ( View *view : qAsConst(m_views) ) { QDomElement viewEntry = doc.createElement( QStringLiteral("view") ); viewEntry.setAttribute( QStringLiteral("name"), view->name() ); viewsNode.appendChild( viewEntry ); saveViewsInfo( view, viewEntry ); } void DocumentPrivate::saveViewsInfo( View *view, QDomElement &e ) const { ... const bool mode = view->capability( View::Continuous ).toBool(); QVariant PageView::capability( ViewCapability capability ) const { switch ( capability ) { ... case Continuous: return d->aViewContinuous->isChecked(); ## Null pointers The problem is that PageView::d's member pointers are mostly nullptr (assigned by the constructor). This is what causes the crash. Is the PageViewPrivate of a print preview document supposed to contain many nullptr, or should the pointers be initialized through PageView::setupViewerActions()? (This method constructs QAction and whatnot. Maybe it makes no sense to initialize them to QAction/etc, since the print preview dialog has no buttons.) ## Operating on null pointers. I'm suspicious that Okular::Document::closeDocument unconditionally calls DocumentPrivate::saveDocumentInfo() (which leads to the crash). Is it necessary to save the info of a print-preview document? (It crashes if PageView::setupViewerActions() has not been called.) The hacky workaround is to patch PageView::capability() to return some dummy value instead of dereferencing null pointers. -- You are receiving this mail because: You are watching all bug changes.