<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 />
<p>Ship it!</p>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ship It!</pre>
<br />
<p>- Maks</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>