Avoid multiple hashtable lookups in DisplayItemData destructor.

This commit is contained in:
Fedor 2019-09-05 20:03:36 +03:00
parent d9277ab3ed
commit 594f7f0e19
1 changed files with 7 additions and 2 deletions

View File

@ -272,8 +272,13 @@ FrameLayerBuilder::DisplayItemData::~DisplayItemData()
array->RemoveElement(this);
}
MOZ_RELEASE_ASSERT(sAliveDisplayItemDatas && sAliveDisplayItemDatas->Contains(this));
sAliveDisplayItemDatas->RemoveEntry(this);
MOZ_RELEASE_ASSERT(sAliveDisplayItemDatas);
nsPtrHashKey<mozilla::FrameLayerBuilder::DisplayItemData>* entry
= sAliveDisplayItemDatas->GetEntry(this);
MOZ_RELEASE_ASSERT(entry);
sAliveDisplayItemDatas->RemoveEntry(entry);
if (sAliveDisplayItemDatas->Count() == 0) {
delete sAliveDisplayItemDatas;
sAliveDisplayItemDatas = nullptr;