writerfilter/source/ooxml/OOXMLDocumentImpl.cxx | 25 +++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-)
New commits: commit 89853de3231e92a17a646acb7f99584220fadad8 Author: tagezi <lera.goncha...@gmail.com> Date: Wed Dec 6 21:23:37 2017 +0200 tdf#104650 Creating guard to reset status indicator Change-Id: Ic1e79badedc031a588c0b07958002ad7c558ba82 Reviewed-on: https://gerrit.libreoffice.org/45987 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> (cherry picked from commit 58e4b36ace484f2743a3b9919d830c175464b05d) Reviewed-on: https://gerrit.libreoffice.org/46006 diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx index 44552eee5e5f..b905d8968a15 100644 --- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx +++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx @@ -417,8 +417,30 @@ void OOXMLDocumentImpl::resolveFooter(Stream & rStream, } } +namespace { +// Ensures that the indicator is reset after exiting OOXMLDocumentImpl::resolve +class StatusIndicatorGuard{ +public: + explicit StatusIndicatorGuard(css::uno::Reference<css::task::XStatusIndicator>& xStatusIndicator) + :mxStatusIndicator(xStatusIndicator) + { + } + + ~StatusIndicatorGuard() + { + if (mxStatusIndicator.is()) + mxStatusIndicator->end(); + } + +private: + css::uno::Reference<css::task::XStatusIndicator> mxStatusIndicator; +}; +} + void OOXMLDocumentImpl::resolve(Stream & rStream) { + StatusIndicatorGuard aStatusIndicatorGuard(mxStatusIndicator); + if (utl::MediaDescriptor(maMediaDescriptor).getUnpackedValueOrDefault("ReadGlossaries", false)) { resolveFastSubStream(rStream, OOXMLStream::GLOSSARY); @@ -515,9 +537,6 @@ void OOXMLDocumentImpl::resolve(Stream & rStream) "OOXMLDocumentImpl::resolve(): non-UNO exception"); } } - - if (mxStatusIndicator.is()) - mxStatusIndicator->end(); } void OOXMLDocumentImpl::incrementProgress() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits