wininet: Decrement file use count when deleting a cache entry.
This commit is contained in:
parent
6e713b3946
commit
601b4fa589
|
@ -2924,6 +2924,7 @@ BOOL WINAPI DeleteUrlCacheEntryA(LPCSTR lpszUrlName)
|
||||||
LPURLCACHE_HEADER pHeader;
|
LPURLCACHE_HEADER pHeader;
|
||||||
struct _HASH_ENTRY * pHashEntry;
|
struct _HASH_ENTRY * pHashEntry;
|
||||||
CACHEFILE_ENTRY * pEntry;
|
CACHEFILE_ENTRY * pEntry;
|
||||||
|
const URL_CACHEFILE_ENTRY * pUrlEntry;
|
||||||
DWORD error;
|
DWORD error;
|
||||||
|
|
||||||
TRACE("(%s)\n", debugstr_a(lpszUrlName));
|
TRACE("(%s)\n", debugstr_a(lpszUrlName));
|
||||||
|
@ -2954,6 +2955,21 @@ BOOL WINAPI DeleteUrlCacheEntryA(LPCSTR lpszUrlName)
|
||||||
}
|
}
|
||||||
|
|
||||||
pEntry = (CACHEFILE_ENTRY *)((LPBYTE)pHeader + pHashEntry->dwOffsetEntry);
|
pEntry = (CACHEFILE_ENTRY *)((LPBYTE)pHeader + pHashEntry->dwOffsetEntry);
|
||||||
|
if (pEntry->dwSignature != URL_SIGNATURE)
|
||||||
|
{
|
||||||
|
URLCacheContainer_UnlockIndex(pContainer, pHeader);
|
||||||
|
FIXME("Trying to delete entry of unknown format %s\n",
|
||||||
|
debugstr_an((LPCSTR)&pEntry->dwSignature, sizeof(DWORD)));
|
||||||
|
SetLastError(ERROR_FILE_NOT_FOUND);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
pUrlEntry = (const URL_CACHEFILE_ENTRY *)pEntry;
|
||||||
|
if (pUrlEntry->CacheDir < pHeader->DirectoryCount)
|
||||||
|
{
|
||||||
|
if (pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles)
|
||||||
|
pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles--;
|
||||||
|
}
|
||||||
|
|
||||||
URLCache_DeleteEntry(pHeader, pEntry);
|
URLCache_DeleteEntry(pHeader, pEntry);
|
||||||
|
|
||||||
URLCache_DeleteEntryFromHash(pHashEntry);
|
URLCache_DeleteEntryFromHash(pHashEntry);
|
||||||
|
@ -2973,6 +2989,7 @@ BOOL WINAPI DeleteUrlCacheEntryW(LPCWSTR lpszUrlName)
|
||||||
LPURLCACHE_HEADER pHeader;
|
LPURLCACHE_HEADER pHeader;
|
||||||
struct _HASH_ENTRY * pHashEntry;
|
struct _HASH_ENTRY * pHashEntry;
|
||||||
CACHEFILE_ENTRY * pEntry;
|
CACHEFILE_ENTRY * pEntry;
|
||||||
|
const URL_CACHEFILE_ENTRY * pUrlEntry;
|
||||||
LPSTR urlA;
|
LPSTR urlA;
|
||||||
DWORD error;
|
DWORD error;
|
||||||
|
|
||||||
|
@ -3017,6 +3034,21 @@ BOOL WINAPI DeleteUrlCacheEntryW(LPCWSTR lpszUrlName)
|
||||||
}
|
}
|
||||||
|
|
||||||
pEntry = (CACHEFILE_ENTRY *)((LPBYTE)pHeader + pHashEntry->dwOffsetEntry);
|
pEntry = (CACHEFILE_ENTRY *)((LPBYTE)pHeader + pHashEntry->dwOffsetEntry);
|
||||||
|
if (pEntry->dwSignature != URL_SIGNATURE)
|
||||||
|
{
|
||||||
|
URLCacheContainer_UnlockIndex(pContainer, pHeader);
|
||||||
|
FIXME("Trying to delete entry of unknown format %s\n",
|
||||||
|
debugstr_an((LPCSTR)&pEntry->dwSignature, sizeof(DWORD)));
|
||||||
|
SetLastError(ERROR_FILE_NOT_FOUND);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
pUrlEntry = (const URL_CACHEFILE_ENTRY *)pEntry;
|
||||||
|
if (pUrlEntry->CacheDir < pHeader->DirectoryCount)
|
||||||
|
{
|
||||||
|
if (pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles)
|
||||||
|
pHeader->directory_data[pUrlEntry->CacheDir].dwNumFiles--;
|
||||||
|
}
|
||||||
|
|
||||||
URLCache_DeleteEntry(pHeader, pEntry);
|
URLCache_DeleteEntry(pHeader, pEntry);
|
||||||
|
|
||||||
URLCache_DeleteEntryFromHash(pHashEntry);
|
URLCache_DeleteEntryFromHash(pHashEntry);
|
||||||
|
|
Loading…
Reference in New Issue