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

Reply via email to