summaryrefslogtreecommitdiffstats
path: root/dom/base/nsDocument.cpp
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2020-06-13 08:18:46 -0400
committerMatt A. Tobin <email@mattatobin.com>2020-06-13 08:18:46 -0400
commit35754dd1af72abcae49edd2eeb76855d999a4e6d (patch)
tree7a9e52d0e3eb0148cfc9fe1e074c9c1b292f5289 /dom/base/nsDocument.cpp
parenta4c5e74b0b48ade0c1b50b3905670a9d86422453 (diff)
downloadUXP-35754dd1af72abcae49edd2eeb76855d999a4e6d.tar
UXP-35754dd1af72abcae49edd2eeb76855d999a4e6d.tar.gz
UXP-35754dd1af72abcae49edd2eeb76855d999a4e6d.tar.lz
UXP-35754dd1af72abcae49edd2eeb76855d999a4e6d.tar.xz
UXP-35754dd1af72abcae49edd2eeb76855d999a4e6d.zip
Bug 1355787 - nsIdentifierMapEntry should let one to use either strings or atoms as keys to avoid slow string assignments when possible.
Tag #1375
Diffstat (limited to 'dom/base/nsDocument.cpp')
-rw-r--r--dom/base/nsDocument.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index 7b280a188..203c44cbf 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -537,7 +537,7 @@ nsIdentifierMapEntry::HasIdElementExposedAsHTMLDocumentProperty()
size_t
nsIdentifierMapEntry::SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const
{
- return nsStringHashKey::SizeOfExcludingThis(aMallocSizeOf);
+ return mKey.mString.SizeOfExcludingThisIfUnshared(aMallocSizeOf);
}
// Helper structs for the content->subdoc map
@@ -2704,8 +2704,7 @@ nsDocument::AddToNameTable(Element *aElement, nsIAtom* aName)
"Only put elements that need to be exposed as document['name'] in "
"the named table.");
- nsIdentifierMapEntry *entry =
- mIdentifierMap.PutEntry(nsDependentAtomString(aName));
+ nsIdentifierMapEntry* entry = mIdentifierMap.PutEntry(aName);
// Null for out-of-memory
if (entry) {
@@ -2724,8 +2723,7 @@ nsDocument::RemoveFromNameTable(Element *aElement, nsIAtom* aName)
if (mIdentifierMap.Count() == 0)
return;
- nsIdentifierMapEntry *entry =
- mIdentifierMap.GetEntry(nsDependentAtomString(aName));
+ nsIdentifierMapEntry* entry = mIdentifierMap.GetEntry(aName);
if (!entry) // Could be false if the element was anonymous, hence never added
return;
@@ -2739,8 +2737,7 @@ nsDocument::RemoveFromNameTable(Element *aElement, nsIAtom* aName)
void
nsDocument::AddToIdTable(Element *aElement, nsIAtom* aId)
{
- nsIdentifierMapEntry *entry =
- mIdentifierMap.PutEntry(nsDependentAtomString(aId));
+ nsIdentifierMapEntry* entry = mIdentifierMap.PutEntry(aId);
if (entry) { /* True except on OOM */
if (nsGenericHTMLElement::ShouldExposeIdAsHTMLDocumentProperty(aElement) &&
@@ -2762,8 +2759,7 @@ nsDocument::RemoveFromIdTable(Element *aElement, nsIAtom* aId)
return;
}
- nsIdentifierMapEntry *entry =
- mIdentifierMap.GetEntry(nsDependentAtomString(aId));
+ nsIdentifierMapEntry* entry = mIdentifierMap.GetEntry(aId);
if (!entry) // Can be null for XML elements with changing ids.
return;
@@ -4783,7 +4779,7 @@ nsDocument::AddIDTargetObserver(nsIAtom* aID, IDTargetObserver aObserver,
if (!CheckGetElementByIdArg(id))
return nullptr;
- nsIdentifierMapEntry *entry = mIdentifierMap.PutEntry(id);
+ nsIdentifierMapEntry* entry = mIdentifierMap.PutEntry(aID);
NS_ENSURE_TRUE(entry, nullptr);
entry->AddContentChangeCallback(aObserver, aData, aForImage);
@@ -4799,7 +4795,7 @@ nsDocument::RemoveIDTargetObserver(nsIAtom* aID, IDTargetObserver aObserver,
if (!CheckGetElementByIdArg(id))
return;
- nsIdentifierMapEntry *entry = mIdentifierMap.GetEntry(id);
+ nsIdentifierMapEntry* entry = mIdentifierMap.GetEntry(aID);
if (!entry) {
return;
}