<table><tr><td style="">rkflx added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D9328" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>First things first: The patch marks an impressive improvement in (perceived) drawing performance for slow-rendering PDFs, I'm glad your hard work payed off.</p>

<p>See below for some minor comments regarding the code, but obviously I lack Okular/Poppler knowledge to review this in depth. I noticed <a href="https://phabricator.kde.org/D8379" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: line-through;" rel="noreferrer">D8379</a> added some autotests, but here we get nothing in that regard. Do you think there might be a way to autotest the intended behaviour of the rendering a bit, e.g. correct order of main canvas / thumbnail rendering, cancelling on zoom/resize/pan etc.? Just asking, not a requirement for acceptance of course.</p>

<p>As for testing:</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">I'm using Qt 5.10.0, Okular master and Poppler master (Poppler patch did not apply cleanly, though) with <tt style="background: #ebebeb; font-size: 13px;">dublin-center-street.pdf</tt> for now.</li>
<li class="remarkup-list-item">So far I could not yet perform very extensive test runs, but I thought I'd share the first problems I found so you can start looking into it. Will do more testing in a bit. Let me know if you think the problem is somewhere on my side.</li>
</ul>

<ol class="remarkup-list">
<li class="remarkup-list-item">Segfault when resizing window. Backtrace:</li>
</ol>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">#0  0x00007ffff2306893 in _int_free (av=0x7ffff2639c20 <main_arena>, p=0x7affb0, have_lock=0) at malloc.c:4184
#1  0x00007ffff233bba5 in tzset_internal (always=1) at tzset.c:403
#2  0x00007ffff233bd68 in tzset_internal (always=1) at tzset.c:553
#3  __tzset () at tzset.c:555
#4  0x00007ffff233ac29 in __GI_mktime (tp=0x7fffff7ff0e0) at mktime.c:588
#5  0x00007ffff3019291 in qt_mktime(QDate*, QTime*, QDateTimePrivate::DaylightStatus*, QString*, bool*) ()
   from /usr/lib64/libQt5Core.so.5
#6  0x00007ffff301a109 in refreshDateTime(QDateTime::Data&) () from /usr/lib64/libQt5Core.so.5
#7  0x00007ffff301a3b0 in setDateTime(QDateTime::Data&, QDate const&, QTime const&) () from /usr/lib64/libQt5Core.so.5
#8  0x00007ffff301cfb9 in QDateTime::setMSecsSinceEpoch(long long) () from /usr/lib64/libQt5Core.so.5
#9  0x00007ffff301f5a7 in QDateTime::fromMSecsSinceEpoch(long long, Qt::TimeSpec, int) () from /usr/lib64/libQt5Core.so.5
#10 0x00007ffff301f8c8 in QDateTime::currentDateTime() () from /usr/lib64/libQt5Core.so.5
#11 0x00007ffff301f933 in QTime::currentTime() () from /usr/lib64/libQt5Core.so.5
#12 0x00007fffda79034b in Okular::DocumentPrivate::getFreeMemory (this=0x7c7d20, freeSwap=0x0)
    at okular/core/document.cpp:430
#13 0x00007fffda78f671 in Okular::DocumentPrivate::calculateMemoryToFree (this=0x7c7d20)
    at okular/core/document.cpp:229
#14 0x00007fffda7952ae in Okular::DocumentPrivate::sendGeneratorPixmapRequest (this=0x7c7d20)
    at okular/core/document.cpp:1248
#15 0x00007fffda7a0bc2 in Okular::Document::requestPixmaps (this=0x74ec70, requests=..., reqOptions=...)
    at okular/core/document.cpp:3325
#16 0x00007fffda79ff9d in Okular::Document::requestPixmaps (this=0x74ec70, requests=...)
    at okular/core/document.cpp:3177
#17 0x00007fffdac03e37 in ThumbnailListPrivate::slotRequestVisiblePixmaps (this=0x9d98d0)
    at okular/ui/thumbnaillist.cpp:634
#18 0x00007fffdac02e40 in ThumbnailList::notifyContentsCleared (this=0x96a7a0, changedFlags=1)
    at okular/ui/thumbnaillist.cpp:361
#19 0x00007fffda7a0c50 in Okular::Document::requestPixmaps (this=0x74ec70, requests=..., reqOptions=...)
    at okular/core/document.cpp:3328
#20 0x00007fffda79ff9d in Okular::Document::requestPixmaps (this=0x74ec70, requests=...)
    at okular/core/document.cpp:3177
#21 0x00007fffdac03e37 in ThumbnailListPrivate::slotRequestVisiblePixmaps (this=0x9d98d0)
    at okular/ui/thumbnaillist.cpp:634
#22 0x00007fffdac02e40 in ThumbnailList::notifyContentsCleared (this=0x96a7a0, changedFlags=1)                                  
    at okular/ui/thumbnaillist.cpp:361                                                                               
#23 0x00007fffda7a0c50 in Okular::Document::requestPixmaps (this=0x74ec70, requests=..., reqOptions=...)                        
    at okular/core/document.cpp:3328                                                                                 
#24 0x00007fffda79ff9d in Okular::Document::requestPixmaps (this=0x74ec70, requests=...)                                        
    at okular/core/document.cpp:3177                                                                                 
#25 0x00007fffdac03e37 in ThumbnailListPrivate::slotRequestVisiblePixmaps (this=0x9d98d0)                                       
    at okular/ui/thumbnaillist.cpp:634                                                                               
#26 0x00007fffdac02e40 in ThumbnailList::notifyContentsCleared (this=0x96a7a0, changedFlags=1)                                  

...

#495 0x00007fffda7a0c50 in Okular::Document::requestPixmaps (this=0x74ec70, requests=..., reqOptions=...)
    at okular/core/document.cpp:3328
#496 0x00007fffda79ff9d in Okular::Document::requestPixmaps (this=0x74ec70, requests=...)
    at okular/core/document.cpp:3177
#497 0x00007fffdac03e37 in ThumbnailListPrivate::slotRequestVisiblePixmaps (this=0x9d98d0)
    at okular/ui/thumbnaillist.cpp:634
#498 0x00007fffdac02e40 in ThumbnailList::notifyContentsCleared (this=0x96a7a0, changedFlags=1)
    at okular/ui/thumbnaillist.cpp:361
#499 0x00007fffda7a0c50 in Okular::Document::requestPixmaps (this=0x74ec70, requests=..., reqOptions=...)
    at okular/core/document.cpp:3328
#500 0x00007fffda79ff9d in Okular::Document::requestPixmaps (this=0x74ec70, requests=...)
    at okular/core/document.cpp:3177
#501 0x00007fffdac03e37 in ThumbnailListPrivate::slotRequestVisiblePixmaps (this=0x9d98d0)
    at okular/ui/thumbnaillist.cpp:634
#502 0x00007fffdac02e40 in ThumbnailList::notifyContentsCleared (this=0x96a7a0, changedFlags=1)

...</pre></div>



<ol class="remarkup-list" start="2">
<li class="remarkup-list-item">OOM killed when changing sidebar size.</li>
</ol>

<ol class="remarkup-list" start="3">
<li class="remarkup-list-item">ASSERT when deselecting "parking (level 7)" in <span><span class="phui-tag-view phui-tag-type-shade phui-tag-grey phui-tag-shade "><span class="phui-tag-core ">Layers</span></span></span> sidebar:</li>
</ol>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">ASSERT: "(*rIt)->observer() == requesterObserver" in file okular/core/document.cpp, line 3204
Aborted (core dumped)</pre></div>



<ol class="remarkup-list" start="4">
<li class="remarkup-list-item">No text rendering in some situations (observed this multiple times when wildly zooming and jumping around via the thumbnail view, sadly don't have a concise video yet).</li>
</ol></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45649" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">document.cpp:3109</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// New request is more prioritary -> cancel</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">if</span> <span class="p">(</span> <span class="n">executingRequest</span><span class="p">.</span><span class="n">priority</span><span class="p">()</span> <span style="color: #aa2211">></span> <span class="n">otherRequest</span><span class="p">.</span><span class="n">priority</span><span class="p">()</span> <span class="p">)</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">has higher priority</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45650" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">document.cpp:3113</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// New request is less prioritary -> don't cancel</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">if</span> <span class="p">(</span> <span class="n">executingRequest</span><span class="p">.</span><span class="n">priority</span><span class="p">()</span> <span style="color: #aa2211"><</span> <span class="n">otherRequest</span><span class="p">.</span><span class="n">priority</span><span class="p">()</span> <span class="p">)</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">has lower priority</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45651" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">document.cpp:3117</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// New request is as prioritary from a different observer -> don't cancel</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #74777d">// AFAIK this never happens since all observers have different priorities</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">has same priority as</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45652" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">document.cpp:3287</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">            <span style="color: #74777d">// If we were told to remove all the previous and the executing request pagee is not part of the new requests, cancel it</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">            <span style="color: #aa4000">if</span> <span class="p">(</span> <span style="color: #aa2211">!</span><span class="n">requestCancelled</span> <span style="color: #aa2211">&&</span> <span class="n">removeAllPrevious</span> <span style="color: #aa2211">&&</span> <span class="n">requesterObserver</span> <span style="color: #aa2211">==</span> <span class="n">executingRequest</span><span style="color: #aa2211">-></span><span class="n">observer</span><span class="p">()</span> <span style="color: #aa2211">&&</span> <span style="color: #aa2211">!</span><span class="n">newRequestsContainExecutingRequestPage</span> <span class="p">)</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><ul class="remarkup-list">
<li class="remarkup-list-item">word missing after <tt style="background: #ebebeb; font-size: 13px;">previous</tt>?</li>
<li class="remarkup-list-item"><tt style="background: #ebebeb; font-size: 13px;">pagee</tt>?</li>
</ul></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45653" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">document.cpp:3327</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">for</span> <span class="p">(</span> <span class="n">DocumentObserver</span> <span style="color: #aa2211">*</span><span style="color: #a0a000">o</span> <span class="p">:</span> <span class="n">qAsConst</span><span class="p">(</span> <span class="n">observersPixmapCleared</span> <span class="p">)</span> <span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="n">o</span><span style="color: #aa2211">-></span><span class="n">notifyContentsCleared</span><span class="p">(</span> <span class="n">Okular</span><span style="color: #aa2211">::</span><span class="n">DocumentObserver</span><span style="color: #aa2211">::</span><span class="n">Pixmap</span> <span class="p">);</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Add <tt style="background: #ebebeb; font-size: 13px;">{ }</tt>.</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45656" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">generator_chm.cpp:415</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">Okular</span><span style="color: #aa2211">::</span><span class="n">Page</span> <span style="color: #aa2211">*</span><span class="n">page</span> <span style="color: #aa2211">=</span> <span class="n">request</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">m_syncGen</span><span style="color: #aa2211">-></span><span class="n">view</span><span class="p">()</span><span style="color: #aa2211">-></span><span class="n">resize</span><span class="p">(</span><span class="n">page</span><span style="color: #aa2211">-></span><span class="n">width</span><span class="p">(),</span> <span class="n">page</span><span style="color: #aa2211">-></span><span class="n">height</span><span class="p">());</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">const</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45657" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">generator_djvu.cpp:212</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">userMutex</span><span class="p">()</span><span style="color: #aa2211">-></span><span class="n">lock</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">Okular</span><span style="color: #aa2211">::</span><span class="n">Page</span> <span style="color: #aa2211">*</span><span class="n">page</span> <span style="color: #aa2211">=</span> <span class="n">request</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">QList</span><span style="color: #aa2211"><</span><span class="n">KDjVu</span><span style="color: #aa2211">::</span><span class="n">TextEntity</span><span style="color: #aa2211">></span> <span class="n">te</span><span class="p">;</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">const</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45658" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">generator_dvi.cpp:252</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; "><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">Okular</span><span style="color: #aa2211">::</span><span class="n">Page</span> <span style="color: #aa2211">*</span><span class="n">page</span> <span style="color: #aa2211">=</span> <span class="n">request</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">();</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">const</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45659" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">generator_pdf.cpp:1177</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">Okular</span><span style="color: #aa2211">::</span><span class="n">Page</span> <span style="color: #aa2211">*</span><span class="n">page</span> <span style="color: #aa2211">=</span> <span class="n">request</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">();</span>
</div><div style="padding: 0 8px; margin: 0 4px; "><span style="color: #304a96">#ifdef PDFGENERATOR_DEBUG</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">const</tt></p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D9328#inline-45660" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">generator_xps.cpp:2123</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; ">    <span class="n">QMutexLocker</span> <span class="n">lock</span><span class="p">(</span> <span class="n">userMutex</span><span class="p">()</span> <span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span class="n">XpsPage</span> <span style="color: #aa2211">*</span> <span class="n">xpsPage</span> <span style="color: #aa2211">=</span> <span class="n">m_xpsFile</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">(</span> <span class="n">page</span><span style="color: #aa2211">-></span><span class="n">number</span><span class="p">()</span> <span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">XpsPage</span> <span style="color: #aa2211">*</span> <span class="n">xpsPage</span> <span style="color: #aa2211">=</span> <span class="n">m_xpsFile</span><span style="color: #aa2211">-></span><span class="n">page</span><span class="p">(</span> <span class="bright"></span><span class="n"><span class="bright">request</span></span><span class="bright"></span><span style="color: #aa2211"><span class="bright">-></span></span><span class="n">page<span class="bright"></span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span style="color: #aa2211">-></span><span class="n">number</span><span class="p">()</span> <span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">    <span style="color: #aa4000">return</span> <span class="n">xpsPage</span><span style="color: #aa2211">-></span><span class="n">textPage</span><span class="p">();</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">const</tt> (not really...)</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R223 Okular</div></div></div><br /><div><strong>BRANCH</strong><div><div>cancellable (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D9328" rel="noreferrer">https://phabricator.kde.org/D9328</a></div></div><br /><div><strong>To: </strong>aacid, ervin<br /><strong>Cc: </strong>rkflx, ervin, michaelweghorn, ngraham, Okular, gassaf, aacid<br /></div>