Fix HP bustage by moving GetStyleData function templates from nsStyleStruct.h to nsIFrame.h and nsIStyleContext.h b=111883

git-svn-id: svn://10.0.0.236/trunk@109122 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
dbaron%fas.harvard.edu
2001-11-28 06:50:13 +00:00
parent 07fce6e351
commit 3b6c33c60c
5 changed files with 37 additions and 38 deletions

View File

@@ -1100,24 +1100,9 @@ inline nsBorderEdges::nsBorderEdges()
mOutsideEdge = PR_TRUE;
};
// typesafe mechanisms for accessing style data
class nsIFrame;
class nsIStyleContext;
template <class T>
inline void
GetStyleData(nsIFrame* aFrame, const T** aStyleStruct)
{
aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T),
*NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct));
}
template <class T>
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___ */

View File

@@ -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 <class T>
inline void
GetStyleData(nsIFrame* aFrame, const T** aStyleStruct)
{
aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T),
*NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct));
}
#endif /* nsIFrame_h___ */

View File

@@ -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 <class T>
inline void
GetStyleData(nsIStyleContext* aStyleContext, const T** aStyleStruct)
{
*aStyleStruct = NS_STATIC_CAST(const T*,
aStyleContext->GetStyleData(NS_GET_STYLESTRUCTID(T)));
}
#endif /* nsIStyleContext_h___ */

View File

@@ -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 <class T>
inline void
GetStyleData(nsIFrame* aFrame, const T** aStyleStruct)
{
aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T),
*NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct));
}
#endif /* nsIFrame_h___ */

View File

@@ -1100,24 +1100,9 @@ inline nsBorderEdges::nsBorderEdges()
mOutsideEdge = PR_TRUE;
};
// typesafe mechanisms for accessing style data
class nsIFrame;
class nsIStyleContext;
template <class T>
inline void
GetStyleData(nsIFrame* aFrame, const T** aStyleStruct)
{
aFrame->GetStyleData(NS_GET_STYLESTRUCTID(T),
*NS_REINTERPRET_CAST(const nsStyleStruct**, aStyleStruct));
}
template <class T>
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___ */