diff --git a/mozilla/content/shared/public/nsStyleStruct.h b/mozilla/content/shared/public/nsStyleStruct.h index f656b48f6ff..912d8889371 100644 --- a/mozilla/content/shared/public/nsStyleStruct.h +++ b/mozilla/content/shared/public/nsStyleStruct.h @@ -1100,24 +1100,9 @@ inline nsBorderEdges::nsBorderEdges() mOutsideEdge = PR_TRUE; }; -// typesafe mechanisms for accessing style data -class nsIFrame; -class nsIStyleContext; - -template -inline void -GetStyleData(nsIFrame* aFrame, const T** aStyleStruct) -{ - aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T), - *NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct)); -} - -template -inline void -GetStyleData(nsIStyleContext* aStyleContext, const T** aStyleStruct) -{ - *aStyleStruct = NS_STATIC_CAST(const T*, - aStyleContext->GetStyleData(NS_GET_STYLESTRUCTID(T))); -} +// typesafe mechanisms for accessing style data, global function +// templates |GetStyleData(nsIFrame*, const T**)| and +// |GetStyleData(nsIStyleContext*, const T**)|, where T is derived from +// nsStyleStruct, are located in nsIStyleContext.h and nsIFrame.h #endif /* nsStyleStruct_h___ */ diff --git a/mozilla/layout/base/public/nsIFrame.h b/mozilla/layout/base/public/nsIFrame.h index 1e39212b350..0801d8d0cef 100644 --- a/mozilla/layout/base/public/nsIFrame.h +++ b/mozilla/layout/base/public/nsIFrame.h @@ -1159,4 +1159,14 @@ private: NS_IMETHOD_(nsrefcnt) Release(void) = 0; }; +// typesafe way to access style data. See comment in nsStyleStruct.h +// and also overloaded function in nsIStyleContext.h +template +inline void +GetStyleData(nsIFrame* aFrame, const T** aStyleStruct) +{ + aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T), + *NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct)); +} + #endif /* nsIFrame_h___ */ diff --git a/mozilla/layout/base/public/nsIStyleContext.h b/mozilla/layout/base/public/nsIStyleContext.h index 9fcd05cceb8..919d6d38014 100644 --- a/mozilla/layout/base/public/nsIStyleContext.h +++ b/mozilla/layout/base/public/nsIStyleContext.h @@ -139,5 +139,14 @@ extern NS_EXPORT nsresult nsRuleNode* aRuleNode, nsIPresContext* aPresContext); +// typesafe way to access style data. See nsStyleStruct.h and also +// overloaded function in nsIFrame.h. +template +inline void +GetStyleData(nsIStyleContext* aStyleContext, const T** aStyleStruct) +{ + *aStyleStruct = NS_STATIC_CAST(const T*, + aStyleContext->GetStyleData(NS_GET_STYLESTRUCTID(T))); +} #endif /* nsIStyleContext_h___ */ diff --git a/mozilla/layout/generic/nsIFrame.h b/mozilla/layout/generic/nsIFrame.h index 1e39212b350..0801d8d0cef 100644 --- a/mozilla/layout/generic/nsIFrame.h +++ b/mozilla/layout/generic/nsIFrame.h @@ -1159,4 +1159,14 @@ private: NS_IMETHOD_(nsrefcnt) Release(void) = 0; }; +// typesafe way to access style data. See comment in nsStyleStruct.h +// and also overloaded function in nsIStyleContext.h +template +inline void +GetStyleData(nsIFrame* aFrame, const T** aStyleStruct) +{ + aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T), + *NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct)); +} + #endif /* nsIFrame_h___ */ diff --git a/mozilla/layout/style/nsStyleStruct.h b/mozilla/layout/style/nsStyleStruct.h index f656b48f6ff..912d8889371 100644 --- a/mozilla/layout/style/nsStyleStruct.h +++ b/mozilla/layout/style/nsStyleStruct.h @@ -1100,24 +1100,9 @@ inline nsBorderEdges::nsBorderEdges() mOutsideEdge = PR_TRUE; }; -// typesafe mechanisms for accessing style data -class nsIFrame; -class nsIStyleContext; - -template -inline void -GetStyleData(nsIFrame* aFrame, const T** aStyleStruct) -{ - aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T), - *NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct)); -} - -template -inline void -GetStyleData(nsIStyleContext* aStyleContext, const T** aStyleStruct) -{ - *aStyleStruct = NS_STATIC_CAST(const T*, - aStyleContext->GetStyleData(NS_GET_STYLESTRUCTID(T))); -} +// typesafe mechanisms for accessing style data, global function +// templates |GetStyleData(nsIFrame*, const T**)| and +// |GetStyleData(nsIStyleContext*, const T**)|, where T is derived from +// nsStyleStruct, are located in nsIStyleContext.h and nsIFrame.h #endif /* nsStyleStruct_h___ */