<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/100936/">http://git.reviewboard.kde.org/r/100936/</a>
</td>
</tr>
</table>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="http://git.reviewboard.kde.org/r/100936/diff/1/?file=12715#file12715line1500" style="color: black; font-weight: bold; text-decoration: underline;">language/duchain/ducontext.cpp</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void DUContext::clearImportedParentContexts()</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1500</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="k">else</span> <span class="p">{</span></pre></td>
</tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Try adding a DUChain::Uses::hasUses(id) function.
It would be a simplified version of DUChain::Uses::uses():
Simply insert "return (bool)d->m_uses.findIndex(item);" and remove the unneeded code.
The problem would be though, that this only covers uses which are in a _different_ top-context, so you need another efficient mechanism to see whether there are uses in the current top-context. For this, I think you could use "TopDUContext::indexForUsedDeclaration", with parameter "create=false". You should put this combined functionality into a new "Declaration::hasUses()" function, because it might be useful in other cases too.</pre>
</div>
<br />
<p>- David</p>
<br />
<p>On March 23rd, 2011, 12:12 p.m., Sven Brauch wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/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 KDevelop.</div>
<div>By Sven Brauch.</div>
<p style="color: grey;"><i>Updated March 23, 2011, 12:12 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;">Allow to mark Declaration instances as "automatically created", so they aren't automatically deleted if they weren't encountered while the context containing them was generated. This is useful for languages like python and php, where you can do something like "foo = A(); foo.x=3" without having defined a property named x in the class A previously.
I'm not sure about the change in ducontext.cpp; maybe that will be too slow, I don't know.</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>language/duchain/declaration.h <span style="color: grey">(92e0c62)</span></li>
<li>language/duchain/declaration.cpp <span style="color: grey">(b46e4f1)</span></li>
<li>language/duchain/declarationdata.h <span style="color: grey">(3ae64ba)</span></li>
<li>language/duchain/ducontext.cpp <span style="color: grey">(3ec527b)</span></li>
<li>language/duchain/repositories/itemrepository.cpp <span style="color: grey">(c76befd)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/100936/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>