Revert "Improve nsHtml5AtomTable performance (#693)" (#695)

This reverts commit 2bc00efe7bb826d683257264471878c05757f2bb.
This commit is contained in:
Moonchild 2018-08-04 13:32:09 +02:00 • committed by Roy Tam
commit 78d56eefec
2 changed files with 0 additions and 20 deletions

View file

@ -31,11 +31,7 @@ nsHtml5AtomTable::nsHtml5AtomTable()
} }
nsHtml5AtomTable::~nsHtml5AtomTable() nsHtml5AtomTable::~nsHtml5AtomTable()
: mRecentlyUsedParserAtoms{}
{ {
#ifdef DEBUG
NS_GetMainThread(getter_AddRefs(mPermittedLookupThread));
#endif
} }
nsIAtom* nsIAtom*
@ -48,23 +44,13 @@ nsHtml5AtomTable::GetAtom(const nsAString& aKey)
NS_ASSERTION(mPermittedLookupThread == currentThread, "Wrong thread!"); NS_ASSERTION(mPermittedLookupThread == currentThread, "Wrong thread!");
} }
#endif #endif
uint32_t index = mozilla::HashString(aKey) % RECENTLY_USED_PARSER_ATOMS_SIZE;
nsIAtom* cachedAtom = mRecentlyUsedParserAtoms[index];
if (cachedAtom && cachedAtom->Equals(aKey)) {
return cachedAtom;
}
nsIAtom* atom = NS_GetStaticAtom(aKey); nsIAtom* atom = NS_GetStaticAtom(aKey);
if (atom) { if (atom) {
mRecentlyUsedParserAtoms[index] = atom;
return atom; return atom;
} }
nsHtml5AtomEntry* entry = mTable.PutEntry(aKey); nsHtml5AtomEntry* entry = mTable.PutEntry(aKey);
if (!entry) { if (!entry) {
return nullptr; return nullptr;
} }
mRecentlyUsedParserAtoms[index] = entry->GetAtom();
return entry->GetAtom(); return entry->GetAtom();
} }

View file

@ -11,8 +11,6 @@
#include "nsIAtom.h" #include "nsIAtom.h"
#include "nsIThread.h" #include "nsIThread.h"
#define RECENTLY_USED_PARSER_ATOMS_SIZE 31
class nsHtml5Atom; class nsHtml5Atom;
class nsHtml5AtomEntry : public nsStringHashKey class nsHtml5AtomEntry : public nsStringHashKey
@ -89,9 +87,6 @@ class nsHtml5AtomTable
*/ */
void Clear() void Clear()
{ {
for (uint32_t i = 0; i < RECENTLY_USED_PARSER_ATOMS_SIZE; ++i) {
mRecentlyUsedParserAtoms[i] = nullptr;
}
mTable.Clear(); mTable.Clear();
} }
@ -104,7 +99,6 @@ class nsHtml5AtomTable
private: private:
nsTHashtable<nsHtml5AtomEntry> mTable; nsTHashtable<nsHtml5AtomEntry> mTable;
nsIAtom* mRecentlyUsedParserAtoms[RECENTLY_USED_PARSER_ATOMS_SIZE];
#ifdef DEBUG #ifdef DEBUG
nsCOMPtr<nsIThread> mPermittedLookupThread; nsCOMPtr<nsIThread> mPermittedLookupThread;
#endif #endif