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 <[email protected]> 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 <[email protected]> Tested-by: Michael Stahl <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Reviewed-by: Michael Stahl <[email protected]> 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 <[email protected]> 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 <[email protected]> Reviewed-by: Michael Stahl <[email protected]> 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 <[email protected]> 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 <[email protected]> Reviewed-by: Michael Stahl <[email protected]> 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 <[email protected]> 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 <[email protected]> Reviewed-by: Michael Stahl <[email protected]> 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 <[email protected]> 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 <[email protected]> Tested-by: Caolán McNamara <[email protected]> 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
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
