<table><tr><td style="">davidhurka 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/D18744">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D18744#438076" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D18744#438076</a>, <a href="https://phabricator.kde.org/p/shubham/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@shubham</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p><a href="https://phabricator.kde.org/p/aacid/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@aacid</a> area is a RegularAreaRect object which is a QRect bounding the selected text. "area" is to be deleted in all the cases except the case in which it is not possible to delete it since "area" will not contain any text in it and hence it will be nullptr. (case: if text is empty string) and hence return is called instead of deleting the "area".</p></div>
</blockquote>

<p>Wait, stupid question: You assume <tt style="background: #ebebeb; font-size: 13px;">area</tt> to be <tt style="background: #ebebeb; font-size: 13px;">nullptr</tt> if there is no text on the page?</p>

<p>You do <tt style="background: #ebebeb; font-size: 13px;">area = TextSelectionForItem( item );</tt>, PageView::TextSelectionForItem() unconditionally returns a <tt style="background: #ebebeb; font-size: 13px;">Okular::RegularAreaRect *</tt> which it got from TextPage::TextArea(). TextPage::TextArea() does <tt style="background: #ebebeb; font-size: 13px;">return new RegularAreaRect();</tt> if TextSelectionForItem() is called on an empty page, and <tt style="background: #ebebeb; font-size: 13px;">RegularAreaRect * ret= new RegularAreaRect; [complicated] return ret; [or] ret->addShape([...]); return ret</tt> otherwise.</p>

<p>TextSelectionForItem() tests whether it gets <tt style="background: #ebebeb; font-size: 13px;">nullptr</tt> from TextArea(). But how can TextArea() return <tt style="background: #ebebeb; font-size: 13px;">nullptr</tt> at all? <tt style="background: #ebebeb; font-size: 13px;">new RegularAreaRect()</tt> vs. <tt style="background: #ebebeb; font-size: 13px;">new RegularAreaRect</tt>?</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R223 Okular</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D18744">https://phabricator.kde.org/D18744</a></div></div><br /><div><strong>To: </strong>shubham, aacid, VDG, ngraham<br /><strong>Cc: </strong>yurchor, michaelweghorn, kde-doc-english, davidhurka, abetts, loh.tar, alexde, ngraham, okular-devel, gennad, joaonetto, tfella, skadinna, darcyshen, aacid<br /></div>