diff options
Diffstat (limited to 'lotuswordpro/source/filter/lwpobj.hxx')
-rw-r--r-- | lotuswordpro/source/filter/lwpobj.hxx | 13 |
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); |