зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1406829 (part 2) - Use initializer lists more in nsAtom constructors. r=froydnj.
This commit is contained in:
Родитель
b54a014b55
Коммит
1de4b467c1
|
@ -138,10 +138,11 @@ UniquePtr<nsTArray<FakeBufferRefcountHelper>> gFakeBuffers;
|
||||||
// This constructor is for dynamic atoms and HTML5 atoms.
|
// This constructor is for dynamic atoms and HTML5 atoms.
|
||||||
nsAtom::nsAtom(AtomKind aKind, const nsAString& aString, uint32_t aHash)
|
nsAtom::nsAtom(AtomKind aKind, const nsAString& aString, uint32_t aHash)
|
||||||
: mRefCnt(1)
|
: mRefCnt(1)
|
||||||
|
, mLength(aString.Length())
|
||||||
|
, mKind(static_cast<uint32_t>(aKind))
|
||||||
|
, mHash(aHash)
|
||||||
{
|
{
|
||||||
mLength = aString.Length();
|
MOZ_ASSERT(aKind == AtomKind::DynamicAtom || aKind == AtomKind::HTML5Atom);
|
||||||
SetKind(aKind);
|
|
||||||
MOZ_ASSERT(IsDynamicAtom() || IsHTML5Atom());
|
|
||||||
RefPtr<nsStringBuffer> buf = nsStringBuffer::FromString(aString);
|
RefPtr<nsStringBuffer> buf = nsStringBuffer::FromString(aString);
|
||||||
if (buf) {
|
if (buf) {
|
||||||
mString = static_cast<char16_t*>(buf->Data());
|
mString = static_cast<char16_t*>(buf->Data());
|
||||||
|
@ -158,13 +159,12 @@ nsAtom::nsAtom(AtomKind aKind, const nsAString& aString, uint32_t aHash)
|
||||||
mString[mLength] = char16_t(0);
|
mString[mLength] = char16_t(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
mHash = aHash;
|
|
||||||
MOZ_ASSERT_IF(IsDynamicAtom(), mHash == HashString(mString, mLength));
|
MOZ_ASSERT_IF(IsDynamicAtom(), mHash == HashString(mString, mLength));
|
||||||
|
|
||||||
NS_ASSERTION(mString[mLength] == char16_t(0), "null terminated");
|
MOZ_ASSERT(mString[mLength] == char16_t(0), "null terminated");
|
||||||
NS_ASSERTION(buf && buf->StorageSize() >= (mLength + 1) * sizeof(char16_t),
|
MOZ_ASSERT(buf && buf->StorageSize() >= (mLength + 1) * sizeof(char16_t),
|
||||||
"enough storage");
|
"enough storage");
|
||||||
NS_ASSERTION(Equals(aString), "correct data");
|
MOZ_ASSERT(Equals(aString), "correct data");
|
||||||
|
|
||||||
// Take ownership of buffer
|
// Take ownership of buffer
|
||||||
mozilla::Unused << buf.forget();
|
mozilla::Unused << buf.forget();
|
||||||
|
@ -172,11 +172,11 @@ nsAtom::nsAtom(AtomKind aKind, const nsAString& aString, uint32_t aHash)
|
||||||
|
|
||||||
// This constructor is for static atoms.
|
// This constructor is for static atoms.
|
||||||
nsAtom::nsAtom(nsStringBuffer* aStringBuffer, uint32_t aLength, uint32_t aHash)
|
nsAtom::nsAtom(nsStringBuffer* aStringBuffer, uint32_t aLength, uint32_t aHash)
|
||||||
|
: mLength(aLength)
|
||||||
|
, mKind(static_cast<uint32_t>(AtomKind::StaticAtom))
|
||||||
|
, mHash(aHash)
|
||||||
|
, mString(static_cast<char16_t*>(aStringBuffer->Data()))
|
||||||
{
|
{
|
||||||
mLength = aLength;
|
|
||||||
SetKind(AtomKind::StaticAtom);
|
|
||||||
mString = static_cast<char16_t*>(aStringBuffer->Data());
|
|
||||||
|
|
||||||
#if defined(NS_BUILD_REFCNT_LOGGING)
|
#if defined(NS_BUILD_REFCNT_LOGGING)
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
if (!gFakeBuffers) {
|
if (!gFakeBuffers) {
|
||||||
|
@ -189,7 +189,6 @@ nsAtom::nsAtom(nsStringBuffer* aStringBuffer, uint32_t aLength, uint32_t aHash)
|
||||||
// the static atom buffers have an initial refcount of 2.
|
// the static atom buffers have an initial refcount of 2.
|
||||||
aStringBuffer->AddRef();
|
aStringBuffer->AddRef();
|
||||||
|
|
||||||
mHash = aHash;
|
|
||||||
MOZ_ASSERT(mHash == HashString(mString, mLength));
|
MOZ_ASSERT(mHash == HashString(mString, mLength));
|
||||||
|
|
||||||
MOZ_ASSERT(mString[mLength] == char16_t(0), "null terminated");
|
MOZ_ASSERT(mString[mLength] == char16_t(0), "null terminated");
|
||||||
|
|
Загрузка…
Ссылка в новой задаче