Bug 1380133 - Part 7: De-templatize CalcStyleDifference(Internal). r=emilio draft
authorCameron McCormack <cam@mcc.id.au>
Fri, 21 Jul 2017 11:42:44 +0800
changeset 612846 0280187becf0f35bc7c5ceb272babd6e0adbb3ff
parent 612845 55e3be75bb4325de6431e636ef815bc870bcad94
child 612847 6f3b2a61c65a5ac182ce6c7530a17234950cfa5a
child 612850 ccd58db2c720c6ae3a6e2ec71154921abcaaf06f
push id69614
push userbmo:cam@mcc.id.au
push dateFri, 21 Jul 2017 03:44:21 +0000
reviewersemilio
bugs1380133
milestone56.0a1
Bug 1380133 - Part 7: De-templatize CalcStyleDifference(Internal). r=emilio MozReview-Commit-ID: 8c1E1gbwaHz --- layout/style/nsStyleContext.cpp | 23 +++++------------------ layout/style/nsStyleContext.h | 7 ------- 2 files changed, 5 insertions(+), 25 deletions(-)
layout/style/nsStyleContext.cpp
layout/style/nsStyleContext.h
--- a/layout/style/nsStyleContext.cpp
+++ b/layout/style/nsStyleContext.cpp
@@ -180,24 +180,23 @@ nsStyleContext::MoveTo(nsStyleContext* a
 
   if (styleIfVisited) {
     styleIfVisited->mParent->RemoveChild(styleIfVisited);
     styleIfVisited->mParent = aNewParent;
     styleIfVisited->mParent->AddChild(styleIfVisited);
   }
 }
 
-template<class StyleContextLike>
 nsChangeHint
-nsStyleContext::CalcStyleDifferenceInternal(StyleContextLike* aNewContext,
-                                            uint32_t* aEqualStructs,
-                                            uint32_t* aSamePointerStructs,
-                                            uint32_t aRelevantStructs)
+nsStyleContext::CalcStyleDifference(nsStyleContext* aNewContext,
+                                    uint32_t* aEqualStructs,
+                                    uint32_t* aSamePointerStructs,
+                                    uint32_t aRelevantStructs)
 {
-  AUTO_PROFILER_LABEL("nsStyleContext::CalcStyleDifferenceInternal", CSS);
+  AUTO_PROFILER_LABEL("nsStyleContext::CalcStyleDifference", CSS);
 
   static_assert(nsStyleStructID_Length <= 32,
                 "aEqualStructs is not big enough");
 
   MOZ_ASSERT(aRelevantStructs == kAllResolvedStructs || IsServo(),
              "aRelevantStructs must be kAllResolvedStructs for Gecko contexts");
 
   if (aRelevantStructs == kAllResolvedStructs) {
@@ -442,28 +441,16 @@ nsStyleContext::CalcStyleDifferenceInter
     }
   }
 
   MOZ_ASSERT(NS_IsHintSubset(hint, nsChangeHint_AllHints),
              "Added a new hint without bumping AllHints?");
   return hint & ~nsChangeHint_NeutralChange;
 }
 
-nsChangeHint
-nsStyleContext::CalcStyleDifference(nsStyleContext* aNewContext,
-                                    uint32_t* aEqualStructs,
-                                    uint32_t* aSamePointerStructs,
-                                    uint32_t aRelevantStructs)
-{
-  return CalcStyleDifferenceInternal(aNewContext,
-                                     aEqualStructs,
-                                     aSamePointerStructs,
-                                     aRelevantStructs);
-}
-
 namespace mozilla {
 
 void
 GeckoStyleContext::EnsureSameStructsCached(nsStyleContext* aOldContext)
 {
   // NOTE(emilio): We could do better here for stylo, where we only call
   // Style##name_() because we need to run FinishStyle, but otherwise this
   // is only a bitwise or.
--- a/layout/style/nsStyleContext.h
+++ b/layout/style/nsStyleContext.h
@@ -282,23 +282,16 @@ public:
    * structs to be compared.
    */
   nsChangeHint CalcStyleDifference(nsStyleContext* aNewContext,
                                    uint32_t* aEqualStructs,
                                    uint32_t* aSamePointerStructs,
                                    uint32_t aRelevantStructs =
                                      kAllResolvedStructs);
 
-private:
-  template<class StyleContextLike>
-  nsChangeHint CalcStyleDifferenceInternal(StyleContextLike* aNewContext,
-                                           uint32_t* aEqualStructs,
-                                           uint32_t* aSamePointerStructs,
-                                           uint32_t aRelevantStructs);
-
 public:
   /**
    * Get a color that depends on link-visitedness using this and
    * this->GetStyleIfVisited().
    *
    * @param aField A pointer to a member variable in a style struct.
    *               The member variable and its style struct must have
    *               been listed in nsCSSVisitedDependentPropList.h.