Bug 1393189 part 2 - Have CounterStyle::GetStyleName return nsIAtom and make it const. r?dholbert
MozReview-Commit-ID: KmnQSK7ZvND
--- a/layout/style/CounterStyleManager.cpp
+++ b/layout/style/CounterStyleManager.cpp
@@ -576,17 +576,17 @@ class BuiltinCounterStyle : public Count
{
public:
constexpr BuiltinCounterStyle(int32_t aStyle, nsIAtom** aName)
: CounterStyle(aStyle)
, mName(aName)
{
}
- virtual void GetStyleName(nsAString& aResult) override;
+ virtual nsIAtom* GetStyleName() const final;
virtual void GetPrefix(nsAString& aResult) override;
virtual void GetSuffix(nsAString& aResult) override;
virtual void GetSpokenCounterText(CounterValue aOrdinal,
WritingMode aWritingMode,
nsAString& aResult,
bool& aIsBullet) override;
virtual bool IsBullet() override;
@@ -613,24 +613,20 @@ protected:
private:
// The atom for the name of the builtin counter style.
// Extra indirection to point to nsGkAtoms members rather than the
// nsIAtom, because members of nsGkAtoms are updated at runtime but
// we want to construct BuiltinCounterStyle at compile time.
nsIAtom** const mName;
};
-/* virtual */ void
-BuiltinCounterStyle::GetStyleName(nsAString& aResult)
+/* virtual */ nsIAtom*
+BuiltinCounterStyle::GetStyleName() const
{
- MOZ_ASSERT(mStyle != NS_STYLE_LIST_STYLE_CUSTOM);
- const nsCString& str =
- nsCSSProps::ValueToKeyword(mStyle, nsCSSProps::kListStyleKTable);
- MOZ_ASSERT(!str.IsEmpty());
- aResult.Assign(NS_ConvertUTF8toUTF16(str));
+ return *mName;
}
/* virtual */ void
BuiltinCounterStyle::GetPrefix(nsAString& aResult)
{
aResult.Truncate();
}
@@ -1071,17 +1067,17 @@ public:
// For counter style extends other, in addition, all fields will be
// reset to uninitialized state. This method should be called when any
// other counter style is added, removed, or changed.
void ResetDependentData();
nsCSSCounterStyleRule* GetRule() const { return mRule; }
uint32_t GetRuleGeneration() const { return mRuleGeneration; }
- virtual void GetStyleName(nsAString& aResult) override;
+ virtual nsIAtom* GetStyleName() const override;
virtual void GetPrefix(nsAString& aResult) override;
virtual void GetSuffix(nsAString& aResult) override;
virtual void GetSpokenCounterText(CounterValue aOrdinal,
WritingMode aWritingMode,
nsAString& aResult,
bool& aIsBullet) override;
virtual bool IsBullet() override;
@@ -1228,21 +1224,20 @@ CustomCounterStyle::ResetDependentData()
if (IsExtendsSystem()) {
mFlags &= ~(FLAG_NEGATIVE_INITED |
FLAG_PREFIX_INITED |
FLAG_SUFFIX_INITED |
FLAG_PAD_INITED);
}
}
-/* virtual */ void
-CustomCounterStyle::GetStyleName(nsAString& aResult)
+/* virtual */ nsIAtom*
+CustomCounterStyle::GetStyleName() const
{
- nsDependentAtomString name(mName);
- aResult.Assign(name);
+ return mName;
}
/* virtual */ void
CustomCounterStyle::GetPrefix(nsAString& aResult)
{
if (!(mFlags & FLAG_PREFIX_INITED)) {
mFlags |= FLAG_PREFIX_INITED;
@@ -1752,20 +1747,20 @@ AnonymousCounterStyle::AnonymousCounterS
nsTArray<nsString> aSymbols)
: CounterStyle(NS_STYLE_LIST_STYLE_CUSTOM)
, mSingleString(false)
, mSystem(aSystem)
, mSymbols(Move(aSymbols))
{
}
-/* virtual */ void
-AnonymousCounterStyle::GetStyleName(nsAString& aResult)
+/* virtual */ nsIAtom*
+AnonymousCounterStyle::GetStyleName() const
{
- aResult.Truncate();
+ return nullptr;
}
/* virtual */ void
AnonymousCounterStyle::GetPrefix(nsAString& aResult)
{
aResult.Truncate();
}
--- a/layout/style/CounterStyleManager.h
+++ b/layout/style/CounterStyleManager.h
@@ -47,17 +47,17 @@ public:
constexpr int32_t GetStyle() const { return mStyle; }
bool IsNone() const { return mStyle == NS_STYLE_LIST_STYLE_NONE; }
bool IsCustomStyle() const { return mStyle == NS_STYLE_LIST_STYLE_CUSTOM; }
// A style is dependent if it depends on the counter style manager.
// Custom styles are certainly dependent. In addition, some builtin
// styles are dependent for fallback.
bool IsDependentStyle() const;
- virtual void GetStyleName(nsAString& aResult) = 0;
+ virtual nsIAtom* GetStyleName() const = 0;
virtual void GetPrefix(nsAString& aResult) = 0;
virtual void GetSuffix(nsAString& aResult) = 0;
void GetCounterText(CounterValue aOrdinal,
WritingMode aWritingMode,
nsAString& aResult,
bool& aIsRTL);
virtual void GetSpokenCounterText(CounterValue aOrdinal,
WritingMode aWritingMode,
@@ -103,17 +103,17 @@ protected:
class AnonymousCounterStyle final : public CounterStyle
{
public:
explicit AnonymousCounterStyle(const nsAString& aContent);
AnonymousCounterStyle(uint8_t aSystem, nsTArray<nsString> aSymbols);
explicit AnonymousCounterStyle(const nsCSSValue::Array* aValue);
- virtual void GetStyleName(nsAString& aResult) override;
+ virtual nsIAtom* GetStyleName() const override;
virtual void GetPrefix(nsAString& aResult) override;
virtual void GetSuffix(nsAString& aResult) override;
virtual bool IsBullet() override;
virtual void GetNegative(NegativeType& aResult) override;
virtual bool IsOrdinalInRange(CounterValue aOrdinal) override;
virtual bool IsOrdinalInAutoRange(CounterValue aOrdinal) override;
virtual void GetPad(PadType& aResult) override;
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -1463,17 +1463,18 @@ bool
Gecko_CounterStyle_IsName(const CounterStylePtr* aPtr) {
return !Gecko_CounterStyle_IsNone(aPtr) && !(*aPtr)->AsAnonymous();
}
void
Gecko_CounterStyle_GetName(const CounterStylePtr* aPtr,
nsAString* aResult) {
MOZ_ASSERT(Gecko_CounterStyle_IsName(aPtr));
- (*aPtr)->GetStyleName(*aResult);
+ nsIAtom* name = (*aPtr)->GetStyleName();
+ *aResult = nsDependentAtomString(name);
}
const nsTArray<nsString>&
Gecko_CounterStyle_GetSymbols(const CounterStylePtr* aPtr) {
MOZ_ASSERT((*aPtr)->AsAnonymous());
AnonymousCounterStyle* anonymous = (*aPtr)->AsAnonymous();
return anonymous->GetSymbols();
}
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -1320,18 +1320,17 @@ nsComputedDOMStyle::DoGetColumnRuleColor
}
static void
AppendCounterStyle(CounterStyle* aStyle, nsAString& aString)
{
AnonymousCounterStyle* anonymous = aStyle->AsAnonymous();
if (!anonymous) {
// want SetIdent
- nsString type;
- aStyle->GetStyleName(type);
+ nsDependentAtomString type(aStyle->GetStyleName());
nsStyleUtil::AppendEscapedCSSIdent(type, aString);
} else if (anonymous->IsSingleString()) {
const nsTArray<nsString>& symbols = anonymous->GetSymbols();
MOZ_ASSERT(symbols.Length() == 1);
nsStyleUtil::AppendEscapedCSSString(symbols[0], aString);
} else {
aString.AppendLiteral("symbols(");