<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/118293/">https://git.reviewboard.kde.org/r/118293/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I tried the code and I found two issues

1) crash on document close/exit.

Application: Okular (okular), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[KCrash Handler]
#5  deref (this=0x7f7080000068) at /usr/include/qt4/QtCore/qatomic_x86_64.h:133
#6  ~QMap (this=0x1c011c8, __in_chrg=<optimized out>) at /usr/include/qt4/QtCore/qmap.h:185
#7  ~DocumentInfoPrivate (this=0x1c011c0, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/core/document_p.h:274
#8  Okular::DocumentInfo::~DocumentInfo (this=0x1bf34a8, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/core/document.cpp:4668
#9  0x00007f70e59dd4f4 in ~DocumentPrivate (this=0x1bf3310, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/core/document_p.h:77
#10 Okular::Document::~Document (this=0x1be62f0, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/core/document.cpp:2088
#11 0x00007f70e59dd899 in Okular::Document::~Document (this=0x1be62f0, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/core/document.cpp:2089
#12 0x00007f70e5c9b565 in Okular::Part::~Part (this=0x1bba1a0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/part.cpp:869
#13 0x00007f70e5c9b779 in Okular::Part::~Part (this=0x1bba1a0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/part.cpp:880
#14 0x00007f70f4c93f98 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007f70f5c124f7 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007f70f699d025 in KMainWindow::~KMainWindow (this=0x1b9d540, __in_chrg=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdelibs/kdeui/widgets/kmainwindow.cpp:467
#17 0x000000000040f519 in Shell::~Shell (this=0x1b9d540, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/shell/shell.cpp:158
#18 0x000000000040f5b9 in Shell::~Shell (this=0x1b9d540, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/shell/shell.cpp:170
#19 0x00007f70f4c95a88 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00007f70f5c15d1b in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007f70f5fcce63 in QMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007f70f699e021 in KMainWindow::event (this=<optimized out>, ev=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdelibs/kdeui/widgets/kmainwindow.cpp:1084
#23 0x00007f70f69d59a9 in KXmlGuiWindow::event (this=0x1b9d540, ev=0x1be9fa0) at /home/prova/kde-svn/git.kde.org/kde/kdelibs/kdeui/xmlgui/kxmlguiwindow.cpp:126
#24 0x00007f70f5bc66cc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007f70f5bcccfd in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007f70f68e983a in KApplication::notify (this=0x7fff178a5d80, receiver=0x1b9d540, event=0x1be9fa0) at /home/prova/kde-svn/git.kde.org/kde/kdelibs/kdeui/kernel/kapplication.cpp:311
#27 0x00007f70f4c7d41d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#28 0x00007f70f4c80a7d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#29 0x00007f70f4caad93 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x00007f70f0148e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f70f0149048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007f70f01490ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007f70f4caa655 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#34 0x00007f70f5c647c6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#35 0x00007f70f4c7bfef in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007f70f4c7c2e5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#37 0x00007f70f4c81ab9 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#38 0x0000000000409436 in main (argc=<optimized out>, argv=<optimized out>) at /home/prova/kde-svn/git.kde.org/kde/kdegraphics/okular/shell/main.cpp:174


</pre>
 <br />









<p>- Luigi Toscano</p>


<br />
<p>On May 24th, 2014, 4:03 p.m. CEST, Albert Astals Cid wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Okular.</div>
<div>By Albert Astals Cid.</div>


<p style="color: grey;"><i>Updated May 24, 2014, 4:03 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
okular
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">DocumentInfo is now QMap based instead of XML based. Makes internal handling easier. The generators don't do any caching anymore since the Document was already doing caching, made no sense. Now we only ask for the keys we need (except the properties dialog) so the generators that are slow can decide to return only what was asked for. Some generators (i.e. unpluck, xps or the text based ones) will still return all the info since it's calculated on load time and it's not time consuming to return everything if we already have it.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Opened a few files, works as it did. Added some extra debug, made sure that only the info we want is asked for, and that it's properly cached.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>core/document.h <span style="color: grey">(06bac8a)</span></li>

 <li>core/document.cpp <span style="color: grey">(504d07c)</span></li>

 <li>core/document_p.h <span style="color: grey">(aabd192)</span></li>

 <li>core/generator.h <span style="color: grey">(506f8a8)</span></li>

 <li>core/generator.cpp <span style="color: grey">(ec1d1f7)</span></li>

 <li>core/script/kjs_document.cpp <span style="color: grey">(c3280cd)</span></li>

 <li>core/textdocumentgenerator.h <span style="color: grey">(ec331d6)</span></li>

 <li>core/textdocumentgenerator.cpp <span style="color: grey">(d598ccc)</span></li>

 <li>generators/chm/generator_chm.h <span style="color: grey">(5d97009)</span></li>

 <li>generators/chm/generator_chm.cpp <span style="color: grey">(84b9dde)</span></li>

 <li>generators/djvu/generator_djvu.h <span style="color: grey">(93ee4de)</span></li>

 <li>generators/djvu/generator_djvu.cpp <span style="color: grey">(c506ce3)</span></li>

 <li>generators/dvi/generator_dvi.h <span style="color: grey">(d7bf8fd)</span></li>

 <li>generators/dvi/generator_dvi.cpp <span style="color: grey">(0777af7)</span></li>

 <li>generators/fax/generator_fax.h <span style="color: grey">(1cb7d22)</span></li>

 <li>generators/fax/generator_fax.cpp <span style="color: grey">(38873ef)</span></li>

 <li>generators/kimgio/generator_kimgio.h <span style="color: grey">(faebd85)</span></li>

 <li>generators/plucker/generator_plucker.h <span style="color: grey">(8dac4b8)</span></li>

 <li>generators/plucker/generator_plucker.cpp <span style="color: grey">(4ffdead)</span></li>

 <li>generators/poppler/generator_pdf.h <span style="color: grey">(1a34bb7)</span></li>

 <li>generators/poppler/generator_pdf.cpp <span style="color: grey">(a363842)</span></li>

 <li>generators/spectre/generator_ghostview.h <span style="color: grey">(ab9c33d)</span></li>

 <li>generators/spectre/generator_ghostview.cpp <span style="color: grey">(7b0146a)</span></li>

 <li>generators/tiff/generator_tiff.h <span style="color: grey">(9ad1de6)</span></li>

 <li>generators/tiff/generator_tiff.cpp <span style="color: grey">(bc692de)</span></li>

 <li>generators/xps/generator_xps.h <span style="color: grey">(4c56e8c)</span></li>

 <li>generators/xps/generator_xps.cpp <span style="color: grey">(2399a96)</span></li>

 <li>part.cpp <span style="color: grey">(67440bd)</span></li>

 <li>ui/presentationwidget.cpp <span style="color: grey">(4aaec2a)</span></li>

 <li>ui/propertiesdialog.cpp <span style="color: grey">(485c2de)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/118293/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>