зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
6cdee8c35e
Коммит
4ab8b6f8bc
|
@ -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;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче