wininet: Account for disk space usage when deleting url cache entries.
authorJuan Lang <juan.lang@gmail.com>
Tue, 8 Mar 2011 16:06:10 +0000 (08:06 -0800)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 9 Mar 2011 11:25:53 +0000 (12:25 +0100)
dlls/wininet/urlcache.c

index e888360530172fc038492f001f520f3af1d2ba1b..639e13590c7bf09ec0747f43b1d48c27ccf5f247 100644 (file)
@@ -2963,6 +2963,10 @@ BOOL WINAPI DeleteUrlCacheEntryA(LPCSTR lpszUrlName)
         if (pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles)
             pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles--;
     }
+    if (pUrlEntry->size.QuadPart < pHeader->CacheUsage.QuadPart)
+        pHeader->CacheUsage.QuadPart -= pUrlEntry->size.QuadPart;
+    else
+        pHeader->CacheUsage.QuadPart = 0;
 
     URLCache_DeleteEntry(pHeader, pEntry);
 
@@ -3042,6 +3046,10 @@ BOOL WINAPI DeleteUrlCacheEntryW(LPCWSTR lpszUrlName)
         if (pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles)
             pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles--;
     }
+    if (pUrlEntry->size.QuadPart < pHeader->CacheUsage.QuadPart)
+        pHeader->CacheUsage.QuadPart -= pUrlEntry->size.QuadPart;
+    else
+        pHeader->CacheUsage.QuadPart = 0;
 
     URLCache_DeleteEntry(pHeader, pEntry);