<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="http://git.reviewboard.kde.org/r/105099/">http://git.reviewboard.kde.org/r/105099/</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;">This review has been submitted with commit f19aef62921ab0a840d8e2a6e1b7e7ff6c12500f by Bernd Buschinski to branch KDE/4.9.</pre>
 <br />







<p>- Commit</p>


<br />
<p>On May 29th, 2012, 6:05 p.m., Bernd Buschinski wrote:</p>






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

<div>Review request for kdelibs.</div>
<div>By Bernd Buschinski.</div>


<p style="color: grey;"><i>Updated May 29, 2012, 6:05 p.m.</i></p>






<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;">khtml: Fix memleak in DOMStringImpl::lower usage

DOMStringImpl::lower() returns a new lower DOMStringImp*, which needs to be freed.
While it does make sense for all other places, and in all other places we keep proper track of it, this is not the case in 
khtml::ProspectiveTokenizer::processAttribute() (htmlprospectivetokenizer.cpp:720)


This fixed memleaks like:

==17681== 728 (512 direct, 216 indirect) bytes in 16 blocks are definitely lost in loss record 2,907 of 3,059
==17681==    at 0x4C2ABE7: operator new(unsigned long) (vg_replace_malloc.c:287)
==17681==    by 0x1A7D38E9: DOM::DOMStringImpl::lower() const (dom_stringimpl.cpp:396)
==17681==    by 0x1A802734: khtml::ProspectiveTokenizer::processAttribute() (htmlprospectivetokenizer.cpp:720)
==17681==    by 0x1A803DEF: khtml::ProspectiveTokenizer::tokenize(khtml::TokenizerString const&) (htmlprospectivetokenizer.cpp:540)
==17681==    by 0x1A7FD0D7: khtml::HTMLTokenizer::scriptHandler() (htmltokenizer.cpp:497)
==17681==    by 0x1A7FD4DC: khtml::HTMLTokenizer::parseRawContent(khtml::TokenizerString&) (htmltokenizer.cpp:379)
==17681==    by 0x1A7FE972: khtml::HTMLTokenizer::parseTag(khtml::TokenizerString&) (htmltokenizer.cpp:1528)
==17681==    by 0x1A7FF15D: khtml::HTMLTokenizer::write(khtml::TokenizerString const&, bool) (htmltokenizer.cpp:1797)
==17681==    by 0x1A74AC77: KHTMLPart::write(char const*, int) (khtml_part.cpp:2096)
==17681==    by 0x1A740E71: KHTMLPart::slotRestoreData(QByteArray const&) (khtml_part.cpp:1763)
==17681==    by 0x1A76610E: KHTMLPart::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (khtml_part.moc:255)
==17681==    by 0x78B8306: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3547)
</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>khtml/html/htmlprospectivetokenizer.cpp <span style="color: grey">(0e58709)</span></li>

</ul>

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




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








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