diff options
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/ooxml/OOXMLFastContextHandler.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/ooxml/OOXMLFastContextHandler.hxx | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx index b313b0f33f2b..732391ce4cad 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx @@ -2371,10 +2371,11 @@ Token_t OOXMLFastContextHandlerWrapper::getToken() const OOXMLFastContextHandlerMath::OOXMLFastContextHandlerMath(OOXMLFastContextHandler* pContext) : OOXMLFastContextHandlerProperties(pContext) + , depthCount( 0 ) { } -OOXMLFastContextHandlerMath::~OOXMLFastContextHandlerMath() +void OOXMLFastContextHandlerMath::process() { SvGlobalName name( SO3_SM_CLASSID ); comphelper::EmbeddedObjectContainer container; @@ -2398,12 +2399,15 @@ void OOXMLFastContextHandlerMath::lcl_startFastElement(Token_t Element, throw (uno::RuntimeException, xml::sax::SAXException) { buffer.appendOpeningTag( Element, Attribs ); + ++depthCount; } void OOXMLFastContextHandlerMath::lcl_endFastElement(Token_t Element) throw (uno::RuntimeException, xml::sax::SAXException) { buffer.appendClosingTag( Element ); + if( --depthCount == 0 ) + process(); } uno::Reference< xml::sax::XFastContextHandler > diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx index e06f4b18da0e..0d75b7d328f2 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx @@ -646,11 +646,11 @@ class OOXMLFastContextHandlerMath: public OOXMLFastContextHandlerProperties { public: explicit OOXMLFastContextHandlerMath(OOXMLFastContextHandler * pContext); - virtual ~OOXMLFastContextHandlerMath(); - virtual string getType() const { return "Math"; } protected: + virtual void process(); + virtual void lcl_startFastElement(Token_t Element, const uno::Reference< xml::sax::XFastAttributeList > & Attribs) throw (uno::RuntimeException, xml::sax::SAXException); @@ -664,6 +664,7 @@ protected: private: oox::formulaimport::XmlStreamBuilder buffer; + int depthCount; }; |