On Thursday 15 January 2009, Ivan Čukić wrote:
> > ah, so either we need to special case non-existing elements a bit better
> > or just require that svg's don't have 0x0 elements in them.
>
> The problem is that the element in question is *not* 0x0.
>
> As I said, the first time the setElementPrefix (and thus the hasElement) is
> called, it works ok, but when it loads it from the cache, it returns 0x0
> rectangle and the function returns that the element doesn't exist.

possibilities:

* it is getting 0x0 back from the renderer
* it is inserting 0x0 for a non-0x0 rect
* the rects cache on disk is corrupt or getting corrupted somehow

hmmm.. does the attached patch make things better for you?

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Software

Index: svg.cpp
===================================================================
--- svg.cpp	(revision 911726)
+++ svg.cpp	(working copy)
@@ -514,11 +514,11 @@
     bool found = Theme::defaultTheme()->findInRectsCache(d->path, id, elementRect);
 
     if (found) {
+        d->localRectCache.insert(id, elementRect);
         return elementRect.isValid();
     } else {
 //        kDebug() << "** ** *** !!!!!!!! *** ** ** creating renderer due to hasElement miss" << d->path << elementId;
-        d->findAndCacheElementRect(elementId);
-        return d->renderer->elementExists(elementId);
+        return d->findAndCacheElementRect(elementId).isValid();
     }
 }
 

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to