[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.3' - 6 commits - filter/source officecfg/Configuration_officecfg.mk officecfg/registry postprocess/CustomTarget_registry.mk sd/source sfx2/source svx/source

Caolán McNamara caolanm at redhat.com
Thu Apr 16 04:01:21 PDT 2015


 filter/source/msfilter/escherex.cxx                          |   37 +++++------
 officecfg/Configuration_officecfg.mk                         |    1 
 officecfg/registry/data/org/openoffice/ucb/Configuration.xcu |    6 +
 postprocess/CustomTarget_registry.mk                         |    3 
 sd/source/filter/eppt/epptso.cxx                             |    2 
 sd/source/filter/eppt/pptx-epptooxml.cxx                     |    2 
 sfx2/source/appl/fileobj.cxx                                 |   20 +++--
 sfx2/source/appl/fileobj.hxx                                 |    2 
 svx/source/engine3d/scene3d.cxx                              |    9 --
 9 files changed, 45 insertions(+), 37 deletions(-)

New commits:
commit 1ddfd1df97607a2fa1281cb51c42044dc668761f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Apr 15 12:48:47 2015 +0100

    fix crash on re-export of fdo50057-2.odt to odt
    
    (cherry picked from commit 66c9aec156d974b939b680dccbb27e18fb153a23)
    
    Conflicts:
    	sfx2/source/appl/fileobj.hxx
    
    Change-Id: Ice7a754dd4f42b5cf62ae2038b63d893b8a92fd8
    Reviewed-on: https://gerrit.libreoffice.org/15326
    Reviewed-by: Michael Stahl <mstahl at redhat.com>
    Tested-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx
index e123285..7ae5b6e 100644
--- a/sfx2/source/appl/fileobj.cxx
+++ b/sfx2/source/appl/fileobj.cxx
@@ -47,7 +47,9 @@
 #define FILETYPE_OBJECT     3
 
 SvFileObject::SvFileObject()
-    : pOldParent(NULL)
+    : nPostUserEventId(0)
+    , pDelMed(NULL)
+    , pOldParent(NULL)
     , nType(FILETYPE_TEXT)
     , bLoadAgain(true)
     , bSynchron(false)
@@ -64,14 +66,16 @@ SvFileObject::SvFileObject()
 
 SvFileObject::~SvFileObject()
 {
-    if ( xMed.Is() )
+    if (xMed.Is())
     {
         xMed->SetDoneLink( Link() );
         xMed.Clear();
     }
+    if (nPostUserEventId)
+        Application::RemoveUserEvent(nPostUserEventId);
+    delete pDelMed;
 }
 
-
 bool SvFileObject::GetData( ::com::sun::star::uno::Any & rData,
                                 const OUString & rMimeType,
                                 bool bGetSynchron )
@@ -482,10 +486,10 @@ IMPL_STATIC_LINK( SvFileObject, LoadGrfReady_Impl, void*, EMPTYARG )
         if( pThis->xMed.Is() )
         {
             pThis->xMed->SetDoneLink( Link() );
-
-            Application::PostUserEvent(
+            pThis->pDelMed = new SfxMediumRef(pThis->xMed);
+            pThis->nPostUserEventId = Application::PostUserEvent(
                         STATIC_LINK( pThis, SvFileObject, DelMedium_Impl ),
-                        new SfxMediumRef( pThis->xMed ));
+                        pThis->pDelMed);
             pThis->xMed.Clear();
         }
     }
@@ -495,7 +499,9 @@ IMPL_STATIC_LINK( SvFileObject, LoadGrfReady_Impl, void*, EMPTYARG )
 
 IMPL_STATIC_LINK( SvFileObject, DelMedium_Impl, SfxMediumRef*, pDelMed )
 {
-    (void)pThis;
+    pThis->nPostUserEventId = 0;
+    assert(pThis->pDelMed == pDelMed);
+    pThis->pDelMed = NULL;
     delete pDelMed;
     return 0;
 }
diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx
index d43e1eb..5e602b7 100644
--- a/sfx2/source/appl/fileobj.hxx
+++ b/sfx2/source/appl/fileobj.hxx
@@ -33,6 +33,8 @@ class SvFileObject : public sfx2::SvLinkSource
     OUString            sReferer;
     Link                aEndEditLink;
     SfxMediumRef        xMed;
+    ImplSVEvent*        nPostUserEventId;
+    SfxMediumRef*       pDelMed;
     Window*             pOldParent;
 
     sal_uInt8 nType;
commit ce58792b4fa57eb280040eaca80560d1471aefa2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Apr 13 15:51:43 2015 +0100

    Resolves: tdf#90583 3D pie-chart missing guide handles
    
    partial revert of
    
    commit db1d2af02861b49e4f53d726d59cd71c20cee9b1
    Author: Armin Le Grand <alg at apache.org>
    Date:   Tue Feb 18 21:18:13 2014 +0000
    
        Resolves: #i123539# some optimizations for 3D chart...
    
        geometry creation using UNO API
    
        (cherry picked from commit bbe35be767d76d08891c4f3d3600d80e0e6805f2)
    
    Change-Id: If35f05fb62230e90cfc43a0beac053e8a87820d4
    (cherry picked from commit bca8d8985666d3fd22b91eb280f9baaeb933c2d0)
    Reviewed-on: https://gerrit.libreoffice.org/15284
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx
index 40e606a..d9c02c5 100644
--- a/svx/source/engine3d/scene3d.cxx
+++ b/svx/source/engine3d/scene3d.cxx
@@ -380,14 +380,7 @@ void E3dScene::NewObjectInserted(const E3dObject* p3DObj)
 void E3dScene::StructureChanged()
 {
     E3dObject::StructureChanged();
-
-    if(!GetModel() || !GetModel()->isLocked())
-    {
-        // #i123539# optimization for 3D chart object generation: do not reset
-        // already calculated scene projection data every time an object gets
-        // initialized
-        SetRectsDirty();
-    }
+    SetRectsDirty();
 
     ImpCleanup3DDepthMapper();
 }
commit c07133e19e1573ee36f42ea230eece2f839edc60
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Apr 13 12:46:34 2015 +0100

    Related: tdf#74018 fix int wraparound + crash on export
    
    of fdo74018-2.docx to doc
    
    nPoints is 16bit and accumulated value wraps around, so use
    a 32bit nTotalPoints instead and move 16bit declarations to
    use points to confirm no other wraparounds
    
    (cherry picked from commit ce705ac56a8709970356d634abb964adef105594)
    
    Change-Id: If97ccb46ed8eb7f4305cdfe328ae83bc2b0c778c
    Reviewed-on: https://gerrit.libreoffice.org/15281
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 7217ec1..b85979d 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -2059,42 +2059,43 @@ bool EscherPropertyContainer::CreatePolygonProperties(
         {
             Polygon aPolygon;
 
-            sal_uInt16 i, j, k, nPoints, nBezPoints, nPolyCount = aPolyPolygon.Count();
+            sal_uInt16 nPolyCount = aPolyPolygon.Count();
+            sal_uInt32 nTotalPoints(0), nTotalBezPoints(0);
             Rectangle aRect( aPolyPolygon.GetBoundRect() );
             rGeoRect = ::com::sun::star::awt::Rectangle( aRect.Left(), aRect.Top(), aRect.GetWidth(), aRect.GetHeight() );
 
-            for ( nBezPoints = nPoints = i = 0; i < nPolyCount; i++ )
+            for (sal_uInt16 i = 0; i < nPolyCount; ++i)
             {
-                k = aPolyPolygon[ i ].GetSize();
-                nPoints = nPoints + k;
-                for ( j = 0; j < k; j++ )
+                sal_uInt16 k = aPolyPolygon[ i ].GetSize();
+                nTotalPoints += k;
+                for (sal_uInt16 j = 0; j < k; ++j)
                 {
                     if ( aPolyPolygon[ i ].GetFlags( j ) != POLY_CONTROL )
-                        nBezPoints++;
+                        nTotalBezPoints++;
                 }
             }
-            sal_uInt32 nVerticesBufSize = ( nPoints << 2 ) + 6;
+            sal_uInt32 nVerticesBufSize = ( nTotalPoints << 2 ) + 6;
             sal_uInt8* pVerticesBuf = new sal_uInt8[ nVerticesBufSize ];
 
 
-            sal_uInt32 nSegmentBufSize = ( ( nBezPoints << 2 ) + 8 );
+            sal_uInt32 nSegmentBufSize = ( ( nTotalBezPoints << 2 ) + 8 );
             if ( nPolyCount > 1 )
                 nSegmentBufSize += ( nPolyCount << 1 );
             sal_uInt8* pSegmentBuf = new sal_uInt8[ nSegmentBufSize ];
 
             sal_uInt8* pPtr = pVerticesBuf;
-            *pPtr++ = (sal_uInt8)( nPoints );                    // Little endian
-            *pPtr++ = (sal_uInt8)( nPoints >> 8 );
-            *pPtr++ = (sal_uInt8)( nPoints );
-            *pPtr++ = (sal_uInt8)( nPoints >> 8 );
+            *pPtr++ = (sal_uInt8)( nTotalPoints );                    // Little endian
+            *pPtr++ = (sal_uInt8)( nTotalPoints >> 8 );
+            *pPtr++ = (sal_uInt8)( nTotalPoints );
+            *pPtr++ = (sal_uInt8)( nTotalPoints >> 8 );
             *pPtr++ = (sal_uInt8)0xf0;
             *pPtr++ = (sal_uInt8)0xff;
 
-            for ( j = 0; j < nPolyCount; j++ )
+            for (sal_uInt16 j = 0; j < nPolyCount; ++j)
             {
                 aPolygon = aPolyPolygon[ j ];
-                nPoints = aPolygon.GetSize();
-                for ( i = 0; i < nPoints; i++ )             // write points from polygon to buffer
+                sal_uInt16 nPoints = aPolygon.GetSize();
+                for (sal_uInt16 i = 0; i < nPoints; ++i)             // write points from polygon to buffer
                 {
                     Point aPoint = aPolygon[ i ];
                     aPoint.X() -= rGeoRect.X;
@@ -2115,13 +2116,13 @@ bool EscherPropertyContainer::CreatePolygonProperties(
             *pPtr++ = (sal_uInt8)2;
             *pPtr++ = (sal_uInt8)0;
 
-            for ( j = 0; j < nPolyCount; j++ )
+            for (sal_uInt16 j = 0; j < nPolyCount; ++j)
             {
                 *pPtr++ = 0x0;          // Polygon start
                 *pPtr++ = 0x40;
                 aPolygon = aPolyPolygon[ j ];
-                nPoints = aPolygon.GetSize();
-                for ( i = 0; i < nPoints; i++ )         // write Polyflags to Buffer
+                sal_uInt16 nPoints = aPolygon.GetSize();
+                for (sal_uInt16 i = 0; i < nPoints; ++i)         // write Polyflags to Buffer
                 {
                     *pPtr++ = 0;
                     if ( bBezier )
commit 51a02cdcb669468608c9dcef019a89fd9bcadbc7
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 14 17:05:10 2015 +0100

    fix export of ooo120353-1.odp to pptx, mismatch of start and end element
    
    cut and paste error I guess from the block above it
    
    Change-Id: I121e1d1a9f08ea3731bb7f65c385f264b3c2d2f4
    (cherry picked from commit 1d4e66a79453f7b020a3dcea328c03637407add9)
    Reviewed-on: https://gerrit.libreoffice.org/15309
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx
index 980befa2..2cb61d5 100644
--- a/sd/source/filter/eppt/pptx-epptooxml.cxx
+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx
@@ -1093,7 +1093,7 @@ void PowerPointExport::WriteAnimationNodeCommonPropsStart( FSHelperPtr pFS, cons
         WriteAnimationCondition( pFS, aCondSeq[ i ], false, bMainSeqChild );
     } else
         WriteAnimationCondition( pFS, aAny, false, bMainSeqChild );
-    pFS->endElementNS( XML_p, XML_stCondLst );
+    pFS->endElementNS( XML_p, XML_endCondLst );
     }
 
     Reference< XEnumerationAccess > xEnumerationAccess( rXNode, UNO_QUERY );
commit b895c5c63f0eb8ca76406bbc4b2f59a3b216eb71
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 14 20:59:50 2015 +0100

    fix assert on re-export of ooo48994-1.ppt to ppt
    
    Change-Id: Ic8274e7d060f315d7891f8f5cf576f834ca89117
    (cherry picked from commit eece059c1f728059b536763bffd2d4fc3537833e)
    Reviewed-on: https://gerrit.libreoffice.org/15314
    Tested-by: Michael Stahl <mstahl at redhat.com>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index bf8bd4f..2b13085 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -1138,7 +1138,7 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance, sal_u
                                 aFile = aFile.replaceAll( "/", "\\" );
                                 aTarget = aFile;
                             }
-                            else if ( pFieldEntry->aFieldUrl[0] == '#' )
+                            else if ( pFieldEntry->aFieldUrl.startsWith("#") )
                             {
                                 OUString aPage( INetURLObject::decode( pFieldEntry->aFieldUrl, '%', INetURLObject::DECODE_WITH_CHARSET ) );
                                 aPage = aPage.copy( 1 );
commit ef64455c9eb9404d67954555e4c70d77ebdf3059
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Apr 13 18:27:33 2015 +0200

    rhbz#1134285: Access dav, davs URLs via GVFS
    
    ...so that LO shares the credentials with Nautilus once the connection has been
    set up in Nautilus.
    
    The reason the (non-standard) dav, davs URLs used by GNOME's old GnomeVFS and
    successor GVFS/GIO were handled via LO's webdav UCP rather than the GNOME-
    specific gnomevfs resp. gio UCP since b07a5fcc600ad564315d36fbd18495184fdf69cf
    "INTEGRATION: CWS tkr10: i84676 neon and gnome-vfs2" is discussed at
    <https://bz.apache.org/ooo/show_bug.cgi?id=84676> "mixing neon and the hidden
    embedded contents old [sic] another neon inside libhttp.so of gnome-vfs2 is
    unreliable" and only pertains to the legacy gnomevfs UCP, not the new gio one.
    So keep handling dav, davs URLs via LO's internal webdav UCP under legacy
    --enable-gnome-vfs, but handle them via the GNOME-specific gio UCP under the
    default --enable-gio.
    
    Change-Id: Ib132168701a7ae0a7dcabdead6a299eda0cd4594
    (cherry picked from commit 51e0d789c344547956764c3b5f0ef5a304f4e0aa)
    Reviewed-on: https://gerrit.libreoffice.org/15296
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/officecfg/Configuration_officecfg.mk b/officecfg/Configuration_officecfg.mk
index 5f345b7..6cb44d0 100644
--- a/officecfg/Configuration_officecfg.mk
+++ b/officecfg/Configuration_officecfg.mk
@@ -122,6 +122,7 @@ $(eval $(call gb_Configuration_add_spool_modules,registry,officecfg/registry/dat
 	org/openoffice/TypeDetection/UISort-math.xcu \
 	org/openoffice/ucb/Configuration-gio.xcu \
 	org/openoffice/ucb/Configuration-neon.xcu \
+	org/openoffice/ucb/Configuration-neon_gnomevfs.xcu \
 	org/openoffice/ucb/Configuration-win.xcu \
 ))
 
diff --git a/officecfg/registry/data/org/openoffice/ucb/Configuration.xcu b/officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
index e9704d3..9cb2a1a 100644
--- a/officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
+++ b/officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
@@ -89,7 +89,8 @@
                 <value/>
               </prop>
             </node>
-            <node oor:name="Provider7" oor:op="replace" install:module="neon">
+            <node oor:name="Provider7" oor:op="replace"
+                install:module="neon_gnomevfs">
               <prop oor:name="ServiceName">
                 <value>com.sun.star.ucb.WebDAVContentProvider</value>
               </prop>
@@ -155,7 +156,8 @@
                 <value/>
               </prop>
             </node>
-            <node oor:name="Provider13" oor:op="replace" install:module="neon">
+            <node oor:name="Provider13" oor:op="replace"
+                install:module="neon_gnomevfs">
               <prop oor:name="ServiceName">
                 <value>com.sun.star.ucb.WebDAVContentProvider</value>
               </prop>
diff --git a/postprocess/CustomTarget_registry.mk b/postprocess/CustomTarget_registry.mk
index ff106cb..05f2406 100644
--- a/postprocess/CustomTarget_registry.mk
+++ b/postprocess/CustomTarget_registry.mk
@@ -333,6 +333,9 @@ postprocess_DRIVERS += ado
 endif
 ifneq ($(WITH_WEBDAV),)
 postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/ucb/Configuration-neon.xcu
+ifeq ($(ENABLE_GNOMEVFS),TRUE)
+postprocess_FILES_main += $(postprocess_MOD)/org/openoffice/ucb/Configuration-neon_gnomevfs.xcu
+endif
 endif
 ifeq ($(ENABLE_EVOAB2),TRUE)
 postprocess_FILES_main += $(call gb_XcuModuleTarget_get_target,connectivity/registry/evoab2)/org/openoffice/Office/DataAccess/Drivers-evoab2.xcu


More information about the Libreoffice-commits mailing list