summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwpobj.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'lotuswordpro/source/filter/lwpobj.hxx')
-rw-r--r--lotuswordpro/source/filter/lwpobj.hxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/lotuswordpro/source/filter/lwpobj.hxx b/lotuswordpro/source/filter/lwpobj.hxx
index 0cd002503d61..23ed6b288803 100644
--- a/lotuswordpro/source/filter/lwpobj.hxx
+++ b/lotuswordpro/source/filter/lwpobj.hxx
@@ -94,11 +94,22 @@ protected:
LwpObjectStream* m_pObjStrm;
LwpFoundry* m_pFoundry;
LwpSvStream* m_pStrm;
+ bool m_bRegisteringStyle;
protected:
virtual void Read();
+ virtual void RegisterStyle();
public:
void QuickRead();
- virtual void RegisterStyle();
+ //calls RegisterStyle but bails if DoRegisterStyle is called
+ //on the same object recursively
+ void DoRegisterStyle()
+ {
+ if (m_bRegisteringStyle)
+ throw std::runtime_error("recursion in styles");
+ m_bRegisteringStyle = true;
+ RegisterStyle();
+ m_bRegisteringStyle = false;
+ }
virtual void Parse(IXFStream* pOutputStream);
virtual void XFConvert(XFContentContainer* pCont);