I just wanted to show you this "nice" view of the mutual recursion.<br><a href="https://lh6.googleusercontent.com/-DfZqVF7TS8A/TtSWqFVxS-I/AAAAAAAAAIM/B82nyHIGwf0/s912/too%2Bdeep%2Brecursion.png">too deep recursion.png</a><br>
Unfortunately, I still have not found the point of exit from it. Any help is wellcome.<br>Best Regards.<br><br><div class="gmail_quote">2011/11/28 Thomas Lübking <span dir="ltr"><<a href="mailto:thomas.luebking@web.de">thomas.luebking@web.de</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>
<div style="font-family:Verdana,Arial,Helvetica,Sans-Serif"><div class="im">
<table style="border:1px #c9c399 solid" bgcolor="#f9f3c9" cellpadding="8" width="100%">
<tbody><tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/103165/" target="_blank">http://git.reviewboard.kde.org/r/103165/</a>
</td>
</tr>
</tbody></table>
<br>
</div><blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px"><div class="im">
<p style="margin-top:0">On November 27th, 2011, 10:22 a.m., <b>Ben Cooksley</b> wrote:</p>
</div><div class="im"><blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<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 fix causes a nasty regression which causes the plugin list in KRunner and other apps to be nearly unusable when compiled with gcc. Please adjust the KPluginSelector component of this fix as it must be causing a behaviour change.</pre>
</blockquote>
</div><p>On November 27th, 2011, 6:33 p.m., <b>Jaime Torres Amate</b> wrote:</p><div class="im">
<blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">Could you explain more about the problems you've noticed or fill a bug report?
Do I have some time to try to fix the problem you've found in KRunner, instead of reverting the code to a wrong status (as not intended by the developer) again?
</pre>
</blockquote>
<p>On November 27th, 2011, 7:27 p.m., <b>Ben Cooksley</b> wrote:</p>
<blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">When trying to configure KRunner with this patch applied, CPU usage by KRunner jumps to about 90% on my system. Checking with gdb shows that quite a few geometry change events are being generated and widgets are being hidden and shown again in very quick succession.
Reverting your patch and recompiling leads KRunner to use 0-1% of the CPU when browsing the list of plugins in it's configure dialog.
Unfortunately there is no definitive backtrace for this issue.
I think you do have some time to find a proper fix for the issue, yes.
You can reproduce by opening KRunner and entering it's configuration dialog. The whole of KRunner will become very unresponsive and CPU usage should shoot up to high levels.</pre>
</blockquote>
<p>On November 27th, 2011, 7:48 p.m., <b>Jaime Torres Amate</b> wrote:</p>
<blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">100% reproducible. I'll do my best. gdb to the rescue.</pre>
</blockquote>
<p>On November 27th, 2011, 7:55 p.m., <b>Thomas Lübking</b> wrote:</p>
<blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">try pushbutton->minimumSizeHint()</pre>
</blockquote>
</div><div class="im"><p>On November 27th, 2011, 8:35 p.m., <b>Jaime Torres Amate</b> wrote:</p>
<blockquote style="margin-left:1em;border-left:2px solid #d0d0d0;padding-left:10px">
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">I'll try that (minimumSizeHint()).
What I've done so far:
* kill my krunner process
* valgrind --tool=callgrind krunner
* Alt+f2, config
* whait 2 minutes
* Kill the window with Ctrl+Alt+Esc
* See the usage with kcachegrind.
So far I've seen that (without detecting cycles in kcachegrind) :
void KCategorizedView::Private::topToBottomVisualRect(const QModelIndex &index, Item &item,
const Block &block, const QPoint &blockPos) const
and
QRect KCategorizedView::visualRect(const QModelIndex &index) const
Are being called too much (mutual recursion?)
</pre>
</blockquote>
</div></blockquote>
<pre style="white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word">> I'll try that (minimumSizeHint()).
spare it, only calls sizeHint() for pushbuttons.
I /think/ we had this or a similar issue with kcategorizedview before.
>From Ben's observation of "widgets are being hidden and shown again" i'd suspect sth. about the scrollbar policy.
If it's not fixed then, i'll also have a deeper look tonight.</pre><span class="HOEnZb"><font color="#888888">
<br>
<p>- Thomas</p></font></span><div class="im">
<br>
<p>On November 17th, 2011, 2:37 p.m., Jaime Torres Amate wrote:</p>
<table style="background-image:url('');background-repeat:repeat-x;border:1px black solid" bgcolor="#fefadf" cellpadding="8" cellspacing="0" width="100%">
<tbody><tr>
<td>
<div>Review request for kdelibs.</div>
<div>By Jaime Torres Amate.</div>
<p style="color:grey"><i>Updated Nov. 17, 2011, 2:37 p.m.</i></p>
<h1 style="color:#575012;font-size:10pt;margin-top:1.5em">Description </h1>
<table style="border:1px solid #b8b5a0" bgcolor="#ffffff" cellpadding="10" cellspacing="0" width="100%">
<tbody><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">Trivial c++ fixes for some warnings of clang++ (2.99.9999)
memset the structure size, not the pointer size (fortunately, the structure size is greater than pointer size in this case).
remove double parenthesis
change false to 0 as pointer parameter
use parenthesis to clarify preference between ? and +
</pre>
</td>
</tr>
</tbody></table>
<h1 style="color:#575012;font-size:10pt;margin-top:1.5em">Testing </h1>
<table style="border:1px solid #b8b5a0" bgcolor="#ffffff" cellpadding="10" cellspacing="0" width="100%">
<tbody><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">Still compiles with g++</pre>
</td>
</tr>
</tbody></table>
<h1 style="color:#575012;font-size:10pt;margin-top:1.5em">Diffs </h1>
<ul style="margin-left:3em;padding-left:0">
<li>kdecore/sycoca/kmemfile.cpp <span style="color:grey">(a466bde)</span></li>
<li>kdeui/fonts/kfontchooser.cpp <span style="color:grey">(541f7db)</span></li>
<li>kdeui/tests/ktabwidgettest.cpp <span style="color:grey">(fdc3161)</span></li>
<li>kross/modules/form.cpp <span style="color:grey">(5e260c1)</span></li>
<li>kutils/kemoticons/kemoticonstheme.cpp <span style="color:grey">(c145741)</span></li>
<li>kutils/kpluginselector.cpp <span style="color:grey">(0a39fcc)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/103165/diff/" style="margin-left:3em" target="_blank">View Diff</a></p>
</td>
</tr>
</tbody></table>
</div></div>
</div>
</blockquote></div><br>