mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Bug 1393189 part 5 - Rewrite CounterStyleOrNone::from_gecko_value to use fewer binding functions. r=heycam
MozReview-Commit-ID: 3EsExs0DzQr --HG-- extra : rebase_source : b97cfeb82dcaf80eb91635e9094c55a264678865
This commit is contained in:
parent
610d192c1b
commit
f3c33019da
@ -238,6 +238,18 @@ public:
|
||||
bool IsResolved() const { return !IsUnresolved(); }
|
||||
inline void Resolve(CounterStyleManager* aManager);
|
||||
|
||||
nsIAtom* AsAtom() const
|
||||
{
|
||||
MOZ_ASSERT(IsUnresolved());
|
||||
return reinterpret_cast<nsIAtom*>(mRaw & ~eMask);
|
||||
}
|
||||
AnonymousCounterStyle* AsAnonymous() const
|
||||
{
|
||||
MOZ_ASSERT(IsAnonymous());
|
||||
return static_cast<AnonymousCounterStyle*>(
|
||||
reinterpret_cast<CounterStyle*>(mRaw & ~eMask));
|
||||
}
|
||||
|
||||
private:
|
||||
CounterStyle* Get() const
|
||||
{
|
||||
@ -266,17 +278,6 @@ private:
|
||||
Type GetType() const { return static_cast<Type>(mRaw & eMask); }
|
||||
bool IsUnresolved() const { return GetType() == eUnresolvedAtom; }
|
||||
bool IsAnonymous() const { return GetType() == eAnonymousCounterStyle; }
|
||||
nsIAtom* AsAtom()
|
||||
{
|
||||
MOZ_ASSERT(IsUnresolved());
|
||||
return reinterpret_cast<nsIAtom*>(mRaw & ~eMask);
|
||||
}
|
||||
AnonymousCounterStyle* AsAnonymous()
|
||||
{
|
||||
MOZ_ASSERT(IsAnonymous());
|
||||
return static_cast<AnonymousCounterStyle*>(
|
||||
reinterpret_cast<CounterStyle*>(mRaw & ~eMask));
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
|
@ -1453,53 +1453,19 @@ Gecko_CopyCounterStyle(CounterStylePtr* aDst, const CounterStylePtr* aSrc)
|
||||
*aDst = *aSrc;
|
||||
}
|
||||
|
||||
bool
|
||||
Gecko_CounterStyle_IsNone(const CounterStylePtr* aPtr) {
|
||||
MOZ_ASSERT(aPtr);
|
||||
return (*aPtr)->IsNone();
|
||||
nsIAtom*
|
||||
Gecko_CounterStyle_GetName(const CounterStylePtr* aPtr)
|
||||
{
|
||||
if (!aPtr->IsResolved()) {
|
||||
return aPtr->AsAtom();
|
||||
}
|
||||
return (*aPtr)->GetStyleName();
|
||||
}
|
||||
|
||||
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));
|
||||
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();
|
||||
}
|
||||
|
||||
uint8_t
|
||||
Gecko_CounterStyle_GetSystem(const CounterStylePtr* aPtr) {
|
||||
MOZ_ASSERT((*aPtr)->AsAnonymous());
|
||||
AnonymousCounterStyle* anonymous = (*aPtr)->AsAnonymous();
|
||||
return anonymous->GetSystem();
|
||||
}
|
||||
|
||||
bool
|
||||
Gecko_CounterStyle_IsSingleString(const CounterStylePtr* aPtr) {
|
||||
MOZ_ASSERT(aPtr);
|
||||
AnonymousCounterStyle* anonymous = (*aPtr)->AsAnonymous();
|
||||
return anonymous ? anonymous->IsSingleString() : false;
|
||||
}
|
||||
|
||||
void
|
||||
Gecko_CounterStyle_GetSingleString(const CounterStylePtr* aPtr,
|
||||
nsAString* aResult) {
|
||||
MOZ_ASSERT(Gecko_CounterStyle_IsSingleString(aPtr));
|
||||
const nsTArray<nsString>& symbols = Gecko_CounterStyle_GetSymbols(aPtr);
|
||||
MOZ_ASSERT(symbols.Length() == 1);
|
||||
aResult->Assign(symbols[0]);
|
||||
const AnonymousCounterStyle*
|
||||
Gecko_CounterStyle_GetAnonymous(const CounterStylePtr* aPtr)
|
||||
{
|
||||
return aPtr->AsAnonymous();
|
||||
}
|
||||
|
||||
already_AddRefed<css::URLValue>
|
||||
|
@ -332,15 +332,9 @@ void Gecko_SetCounterStyleToString(mozilla::CounterStylePtr* ptr,
|
||||
const nsACString* symbol);
|
||||
void Gecko_CopyCounterStyle(mozilla::CounterStylePtr* dst,
|
||||
const mozilla::CounterStylePtr* src);
|
||||
bool Gecko_CounterStyle_IsNone(const mozilla::CounterStylePtr* ptr);
|
||||
bool Gecko_CounterStyle_IsName(const mozilla::CounterStylePtr* ptr);
|
||||
void Gecko_CounterStyle_GetName(const mozilla::CounterStylePtr* ptr,
|
||||
nsAString* result);
|
||||
const nsTArray<nsString>& Gecko_CounterStyle_GetSymbols(const mozilla::CounterStylePtr* ptr);
|
||||
uint8_t Gecko_CounterStyle_GetSystem(const mozilla::CounterStylePtr* ptr);
|
||||
bool Gecko_CounterStyle_IsSingleString(const mozilla::CounterStylePtr* ptr);
|
||||
void Gecko_CounterStyle_GetSingleString(const mozilla::CounterStylePtr* ptr,
|
||||
nsAString* result);
|
||||
nsIAtom* Gecko_CounterStyle_GetName(const mozilla::CounterStylePtr* ptr);
|
||||
const mozilla::AnonymousCounterStyle*
|
||||
Gecko_CounterStyle_GetAnonymous(const mozilla::CounterStylePtr* ptr);
|
||||
|
||||
// background-image style.
|
||||
void Gecko_SetNullImageValue(nsStyleImage* image);
|
||||
|
@ -123,6 +123,7 @@ whitelist-vars = [
|
||||
whitelist-types = [
|
||||
"RawGecko.*",
|
||||
"mozilla::AnimationPropertySegment",
|
||||
"mozilla::AnonymousCounterStyle",
|
||||
"mozilla::ComputedTiming",
|
||||
"mozilla::ComputedTimingFunction",
|
||||
"mozilla::ComputedTimingFunction::BeforeFlag",
|
||||
@ -371,6 +372,7 @@ structs-types = [
|
||||
"mozilla::css::ImageValue",
|
||||
"mozilla::css::URLValue",
|
||||
"mozilla::css::URLValueData",
|
||||
"mozilla::AnonymousCounterStyle",
|
||||
"mozilla::MallocSizeOf",
|
||||
"mozilla::OriginFlags",
|
||||
"mozilla::Side",
|
||||
|
Loading…
Reference in New Issue
Block a user