From 17338528b772dae8fa8043b200bb2d2e446476d1 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Tue, 3 Feb 2026 08:51:06 +0100 Subject: [PATCH] Issue #2928 - Re-order imgLoader::RemoveFromCache Remove from tracker first before removing from cache, and if the cache queue is dirty, refresh it (causes a re-heap) before manipulating further. --- image/imgLoader.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/image/imgLoader.cpp b/image/imgLoader.cpp index a362bc50e6..9bb9880ab9 100644 --- a/image/imgLoader.cpp +++ b/image/imgLoader.cpp @@ -1884,17 +1884,20 @@ imgLoader::RemoveFromCache(imgCacheEntry* entry) "imgLoader::RemoveFromCache", "entry's uri", key.Spec()); - cache.Remove(key); - if (entry->HasNoProxies()) { LOG_STATIC_FUNC(gImgLog, "imgLoader::RemoveFromCache removing from tracker"); + if (queue.IsDirty()) { + queue.Refresh(); + } if (mCacheTracker) { mCacheTracker->RemoveObject(entry); } queue.Remove(entry); } + cache.Remove(key); + entry->SetEvicted(true); request->SetIsInCache(false); AddToUncachedImages(request);