summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoonchild <git-repo@palemoon.org>2019-05-25 15:53:41 +0000
committerGitHub <noreply@github.com>2019-05-25 15:53:41 +0000
commit1f239f8179bce5df201ec486519efbda9d50861b (patch)
tree2772b5e52ff616f658d56a3f18247bfc700e5354
parentc4e345b6d499393132c0cd57d10c98a7a4db370b (diff)
parentbf1e5431f05532e457306c0944b3812ab6ea39f2 (diff)
downloadUXP-1f239f8179bce5df201ec486519efbda9d50861b.tar
UXP-1f239f8179bce5df201ec486519efbda9d50861b.tar.gz
UXP-1f239f8179bce5df201ec486519efbda9d50861b.tar.lz
UXP-1f239f8179bce5df201ec486519efbda9d50861b.tar.xz
UXP-1f239f8179bce5df201ec486519efbda9d50861b.zip
Merge pull request #1121 from win7-7/nsHtml5PortabilitylocalEqualsBuffer-pr
Use memcmp in nsHtml5Portability::localEqualsBuffer
-rw-r--r--parser/html/nsHtml5Portability.cpp2
-rw-r--r--xpcom/ds/nsAtomTable.cpp8
-rw-r--r--xpcom/ds/nsIAtom.idl10
3 files changed, 10 insertions, 10 deletions
diff --git a/parser/html/nsHtml5Portability.cpp b/parser/html/nsHtml5Portability.cpp
index 36c7e758a..0a7c6f845 100644
--- a/parser/html/nsHtml5Portability.cpp
+++ b/parser/html/nsHtml5Portability.cpp
@@ -91,7 +91,7 @@ nsHtml5Portability::releaseString(nsString* str)
bool
nsHtml5Portability::localEqualsBuffer(nsIAtom* local, char16_t* buf, int32_t offset, int32_t length)
{
- return local->Equals(nsDependentSubstring(buf + offset, buf + offset + length));
+ return local->Equals(buf + offset, length);
}
bool
diff --git a/xpcom/ds/nsAtomTable.cpp b/xpcom/ds/nsAtomTable.cpp
index 4c93625ae..c2e77e31f 100644
--- a/xpcom/ds/nsAtomTable.cpp
+++ b/xpcom/ds/nsAtomTable.cpp
@@ -325,13 +325,7 @@ AtomTableMatchKey(const PLDHashEntryHdr* aEntry, const void* aKey)
nsDependentAtomString(he->mAtom)) == 0;
}
- uint32_t length = he->mAtom->GetLength();
- if (length != k->mLength) {
- return false;
- }
-
- return memcmp(he->mAtom->GetUTF16String(),
- k->mUTF16String, length * sizeof(char16_t)) == 0;
+ return he->mAtom->Equals(k->mUTF16String, k->mLength);
}
static void
diff --git a/xpcom/ds/nsIAtom.idl b/xpcom/ds/nsIAtom.idl
index 6e8602c42..ce4cff485 100644
--- a/xpcom/ds/nsIAtom.idl
+++ b/xpcom/ds/nsIAtom.idl
@@ -37,9 +37,15 @@ interface nsIAtom : nsISupports
size_t SizeOfIncludingThis(in MallocSizeOf aMallocSizeOf);
%{C++
- // note this is NOT virtual so this won't muck with the vtable!
+ // note these are NOT virtual so they won't muck with the vtable!
+ inline bool Equals(char16ptr_t aString, uint32_t aLength) const
+ {
+ return mLength == aLength &&
+ memcmp(mString, aString, mLength * sizeof(char16_t)) == 0;
+ }
+
inline bool Equals(const nsAString& aString) const {
- return aString.Equals(nsDependentString(mString, mLength));
+ return Equals(aString.BeginReading(), aString.Length());
}
inline bool IsStaticAtom() const {