Bug 1370700 part 2 - Use mAttributeCache.GetOrInsert() to avoid a second hashtable lookup for Put(). r=froydnj

MozReview-Commit-ID: BE6vztn6ljl
This commit is contained in:
Mats Palmgren 2017-06-07 20:03:19 +02:00
Родитель 6cdee8c35e
Коммит 4ab8b6f8bc
1 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -132,13 +132,13 @@ nsDOMAttributeMap::GetAttribute(mozilla::dom::NodeInfo* aNodeInfo)
nsAttrKey attr(aNodeInfo->NamespaceID(), aNodeInfo->NameAtom()); nsAttrKey attr(aNodeInfo->NamespaceID(), aNodeInfo->NameAtom());
Attr* node = mAttributeCache.GetWeak(attr); RefPtr<Attr>& entryValue = mAttributeCache.GetOrInsert(attr);
Attr* node = entryValue;
if (!node) { if (!node) {
// Newly inserted entry!
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo; RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
RefPtr<Attr> newAttr = entryValue = new Attr(this, ni.forget(), EmptyString());
new Attr(this, ni.forget(), EmptyString()); node = entryValue;
mAttributeCache.Put(attr, newAttr);
node = newAttr;
} }
return node; return node;