mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 21:00:50 +00:00
Bug 1367207 part 4 - Use LookupRemoveIf() to avoid a second hashtable lookup for Remove(). r=dholbert
MozReview-Commit-ID: 6EYkiKpLHvI
This commit is contained in:
parent
0630f5b2bf
commit
7dd909a5ce
@ -147,35 +147,35 @@ ImageLoader::RemoveRequestToFrameMapping(imgIRequest* aRequest,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FrameSet* frameSet = nullptr;
|
mRequestToFrameMap.LookupRemoveIf(aRequest,
|
||||||
mRequestToFrameMap.Get(aRequest, &frameSet);
|
[aRequest, aFrame, this] (FrameSet* aFrameSet) {
|
||||||
if (frameSet) {
|
MOZ_ASSERT(aFrameSet, "This should never be null");
|
||||||
frameSet->RemoveElementSorted(aFrame);
|
aFrameSet->RemoveElementSorted(aFrame);
|
||||||
if (frameSet->IsEmpty()) {
|
bool remove = aFrameSet->IsEmpty();
|
||||||
mRequestToFrameMap.Remove(aRequest);
|
if (remove) {
|
||||||
|
nsPresContext* presContext = GetPresContext();
|
||||||
nsPresContext* presContext = GetPresContext();
|
if (presContext) {
|
||||||
if (presContext) {
|
nsLayoutUtils::DeregisterImageRequest(presContext, aRequest, nullptr);
|
||||||
nsLayoutUtils::DeregisterImageRequest(presContext, aRequest, nullptr);
|
}
|
||||||
}
|
}
|
||||||
}
|
return remove;
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ImageLoader::RemoveFrameToRequestMapping(imgIRequest* aRequest,
|
ImageLoader::RemoveFrameToRequestMapping(imgIRequest* aRequest,
|
||||||
nsIFrame* aFrame)
|
nsIFrame* aFrame)
|
||||||
{
|
{
|
||||||
RequestSet* requestSet = nullptr;
|
mFrameToRequestMap.LookupRemoveIf(aFrame,
|
||||||
mFrameToRequestMap.Get(aFrame, &requestSet);
|
[aRequest, aFrame] (RequestSet* aRequestSet) {
|
||||||
if (requestSet) {
|
MOZ_ASSERT(aRequestSet, "This should never be null");
|
||||||
MOZ_ASSERT(aFrame->HasImageRequest(), "HasImageRequest is lying");
|
aRequestSet->RemoveElementSorted(aRequest);
|
||||||
requestSet->RemoveElementSorted(aRequest);
|
bool remove = aRequestSet->IsEmpty();
|
||||||
if (requestSet->IsEmpty()) {
|
if (remove) {
|
||||||
mFrameToRequestMap.Remove(aFrame);
|
aFrame->SetHasImageRequest(false);
|
||||||
aFrame->SetHasImageRequest(false);
|
}
|
||||||
}
|
return remove;
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user