Fix logic error in DocLoader::clearPreloads()
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 May 2008 23:06:01 +0000 (23:06 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 May 2008 23:06:01 +0000 (23:06 +0000)
        Reviewed by Antti.

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for
        the cached resource before trying to remove it from the cache.  A non-zero
        preload count can prevent the resource from being removed from the cache.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33063 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/loader/DocLoader.cpp

index f781b88..3152e9a 100644 (file)
@@ -1,3 +1,14 @@
+2008-05-12  David Kilzer  <ddkilzer@apple.com>
+
+        Fix logic error in DocLoader::clearPreloads()
+
+        Reviewed by Antti.
+
+        * loader/DocLoader.cpp:
+        (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for
+        the cached resource before trying to remove it from the cache.  A non-zero
+        preload count can prevent the resource from being removed from the cache.
+
 2008-05-12  Anders Carlsson  <andersca@apple.com>
 
         Reviewed by Adam.
index 3001a79..bca0acf 100644 (file)
@@ -262,9 +262,9 @@ void DocLoader::clearPreloads()
     ListHashSet<CachedResource*>::iterator end = m_preloads.end();
     for (ListHashSet<CachedResource*>::iterator it = m_preloads.begin(); it != end; ++it) {
         CachedResource* res = *it;
+        res->decreasePreloadCount();
         if (res->preloadResult() == CachedResource::PreloadNotReferenced)
             cache()->remove(res);
-        res->decreasePreloadCount();
     }
     m_preloads.clear();
 }