[Panel-devel] Infinite rekursion follow up

Beat Wolf asraniel at fryx.ch
Wed Sep 12 12:05:22 CEST 2007


Hi,

sorry if that message was sent twice, but i accidentaly hit the send button 
(well, shortcut) while typing.

i posted a infinite rekursion bug some days ago on this mailing list. sadly i 
got no answer.
So i did some research and that is what i found out:
I think it has something to do with the caching feature. When i loaded the 
notes plasmaoid i saw for a milisecond the real (yellow) background of it, 
but it imediately changed to that rekursive plasma desktop background.
Now i looked around the sourcecode and saw that in svg.cpp (in plasma) there 
is a caching method that does not render the svg twice. i then commented this 
section of the code:

if (QPixmapCache::find(id, p)) {
                kDebug() << "found cached version of " << id;
                return;
            } else {
                kDebug() << "didn't find cached version of " << id << ", so 
re-rendering";
            }

in void findInCache(QPixmap& p, const QString& elementId)

by commenting out that code, the notes plasmaoid is rendered correctly.
The bug is still here in the commit log plasmaoid and a few others. but the 
commit log plasmaoid seems to be rendered in a different way (it uses the 
standard background), so i couldnt figure out where the bug is there, but i 
suppose it's something similar.

here another screenshot of the notes plasmaoid if the caching feature isnt 
commented out: http://www.fryx.ch/Asraniel/plasmabug6.png

Beat Wolf


More information about the Panel-devel mailing list