webengine/osswebengine/WebCore/loader/CachedImage.cpp
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 16 a359256acfc6
--- a/webengine/osswebengine/WebCore/loader/CachedImage.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedImage.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -48,20 +48,15 @@
 
 namespace WebCore {
 
-CachedImage::CachedImage(DocLoader* docLoader, const String& url, bool forCache)
-    : CachedResource(url, ImageResource, forCache)
+CachedImage::CachedImage(const String& url)
+    : CachedResource(url, ImageResource)
 {
     m_image = 0;
     m_status = Unknown;
-    if (!docLoader || docLoader->autoLoadImages())  {
-        m_loading = true;
-        cache()->loader()->load(docLoader, this, true);
-    } else
-        m_loading = false;
 }
 
 CachedImage::CachedImage(Image* image)
-    : CachedResource(String(), ImageResource, false /* not for cache */)
+    : CachedResource(String(), ImageResource)
 {
     m_image = image;
     m_status = Cached;
@@ -73,6 +68,14 @@
     delete m_image;
 }
 
+void CachedImage::load(DocLoader* docLoader) 
+{ 
+    if (!docLoader || docLoader->autoLoadImages()) 
+        CachedResource::load(docLoader, true, false, true); 
+    else 
+        m_loading = false; 
+} 
+
 void CachedImage::ref(CachedResourceClient* c)
 {
     CachedResource::ref(c);
@@ -92,10 +95,12 @@
 
 static Image* brokenImage()
 {
-    static Image* brokenImage;
-    if (!brokenImage)
-        brokenImage = Image::loadPlatformResource("missingImage");
-    return brokenImage;
+    static OwnPtr<Image*> brokenImage;
+    if (!brokenImage) {
+        brokenImage.set(Image::loadPlatformResource("missingImage"));
+    }
+    Image* ret = brokenImage.get();
+    return ret;
 }
 
 static Image* nullImage()
@@ -297,6 +302,7 @@
 {
     setDecodedSize(size_);
     notifyObservers();
+	checkNotify();
 }
 
 void CachedImage::setMimeType(const String& mime_)