sfx2/source/doc/docfile.cxx |   21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

New commits:
commit 01fc9d77764e49583be626d0955ccf872f9b4117
Author: matt_51 <matthieu.gay....@gmail.com>
Date:   Tue Nov 5 11:40:56 2013 +0100

    fdo#70345 Reuse XStream for Windows platform create a new one for others.
    
    Reviewed-on: https://gerrit.libreoffice.org/6580
    Reviewed-by: Michael Stahl <mst...@redhat.com>
    Tested-by: Michael Stahl <mst...@redhat.com>
    (cherry picked from commit 3d12549335229aca1a6a57575292111274709992)
    
    Change-Id: I911c24b82b55445c6f95e14be29759e2fe3d9dfd
    Reviewed-on: https://gerrit.libreoffice.org/6761
    Reviewed-by: Michael Stahl <mst...@redhat.com>
    Tested-by: Michael Stahl <mst...@redhat.com>

diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index c1ad603..06d7a4b 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -641,13 +641,26 @@ SvStream* SfxMedium::GetOutStream()
 
         if ( pImp->pTempFile )
         {
-            // don't try to re-use XOutStream from xStream if that exists;
+            // On windows we try to re-use XOutStream from xStream if that 
exists;
+            // because opening new SvFileStream in this situation may fail 
with ERROR_SHARING_VIOLATION
+            #ifdef WNT
+            if (pImp->xStream.is())
+            {
+                assert(pImp->xStream->getOutputStream().is()); // need that...
+                pImp->m_pOutStream = utl::UcbStreamHelper::CreateStream(
+                        pImp->xStream, false);
+            }
+            else
+            {
+                pImp->m_pOutStream = new SvFileStream(
+                        pImp->m_aName, STREAM_STD_READWRITE);
+            }
+            // On Unix don't try to re-use XOutStream from xStream if that 
exists;
             // it causes fdo#59022 (fails opening files via SMB on Linux)
-            // OTOH opening new SvFileStream in this situation may fail on
-            // Windows with ERROR_SHARING_VIOLATION... but that is apparently
-            // not a problem in practice currently
+            #else
             pImp->m_pOutStream = new SvFileStream(
                         pImp->m_aName, STREAM_STD_READWRITE);
+            #endif
             CloseStorage();
         }
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to