basctl/source/basicide/scriptdocument.cxx | 10 ++++ filter/source/msfilter/msdffimp.cxx | 48 ++++++++++---------- i18npool/qa/cppunit/test_breakiterator.cxx | 4 + i18npool/source/breakiterator/breakiteratorImpl.cxx | 3 - include/unotools/eventcfg.hxx | 2 sd/source/ui/dlg/navigatr.cxx | 3 + sw/source/core/doc/doctxm.cxx | 42 +++++++++++------ unotools/source/config/eventcfg.cxx | 2 vcl/source/window/window.cxx | 25 +++++----- 9 files changed, 87 insertions(+), 52 deletions(-)
New commits: commit 0a483513f198d2e4bbeb2368d5f0763721f9a062 Author: Michael Stahl <mst...@redhat.com> Date: Tue Mar 21 11:01:20 2017 +0100 tdf#106377 sw: fix Undo of delete of ToXMark from dialog The problem is that SwUndoResetAttr and the SwHistorySetTOXMark by design only insert the SwTextAttr, they don't insert the dummy char of a SwTextAttr that needs one, like the ToXMark does if it marks a point. So just change SwDoc::DeleteTOXMark to create SwUndoDelete instead. Change-Id: Ic1eebac4cf859771a6032bffb2fd8e198aa08084 (cherry picked from commit 63f7da77985674ddf59bb566bdada9c41893e822) Reviewed-on: https://gerrit.libreoffice.org/35501 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 123bb36e7eafde85732b57e84d0377586a0a66d8) diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx index b3462b761a41..46496a78d662 100644 --- a/sw/source/core/doc/doctxm.cxx +++ b/sw/source/core/doc/doctxm.cxx @@ -154,26 +154,38 @@ void SwDoc::DeleteTOXMark( const SwTOXMark* pTOXMark ) SwTextNode& rTextNd = const_cast<SwTextNode&>(pTextTOXMark->GetTextNode()); OSL_ENSURE( rTextNd.GetpSwpHints(), "cannot be deleted" ); - std::unique_ptr<SwRegHistory> aRHst; - if (GetIDocumentUndoRedo().DoesUndo()) + if (pTextTOXMark->HasDummyChar()) { - // save attributes for Undo - SwUndoResetAttr* pUndo = new SwUndoResetAttr( - SwPosition( rTextNd, SwIndex( &rTextNd, pTextTOXMark->GetStart() ) ), - RES_TXTATR_TOXMARK ); - GetIDocumentUndoRedo().AppendUndo( pUndo ); - - aRHst.reset(new SwRegHistory(rTextNd, &pUndo->GetHistory())); - rTextNd.GetpSwpHints()->Register(aRHst.get()); + // tdf#106377 don't use SwUndoResetAttr, it uses NOTXTATRCHR + SwPaM tmp(rTextNd, pTextTOXMark->GetStart(), + rTextNd, pTextTOXMark->GetStart()+1); + assert(rTextNd.GetText()[pTextTOXMark->GetStart()] == CH_TXTATR_INWORD); + getIDocumentContentOperations().DeleteRange(tmp); } + else + { + std::unique_ptr<SwRegHistory> aRHst; + if (GetIDocumentUndoRedo().DoesUndo()) + { + // save attributes for Undo + SwUndoResetAttr* pUndo = new SwUndoResetAttr( + SwPosition( rTextNd, SwIndex( &rTextNd, pTextTOXMark->GetStart() ) ), + RES_TXTATR_TOXMARK ); + GetIDocumentUndoRedo().AppendUndo( pUndo ); + + aRHst.reset(new SwRegHistory(rTextNd, &pUndo->GetHistory())); + rTextNd.GetpSwpHints()->Register(aRHst.get()); + } - rTextNd.DeleteAttribute( const_cast<SwTextTOXMark*>(pTextTOXMark) ); + rTextNd.DeleteAttribute( const_cast<SwTextTOXMark*>(pTextTOXMark) ); - if (GetIDocumentUndoRedo().DoesUndo()) - { - if( rTextNd.GetpSwpHints() ) - rTextNd.GetpSwpHints()->DeRegister(); + if (GetIDocumentUndoRedo().DoesUndo()) + { + if( rTextNd.GetpSwpHints() ) + rTextNd.GetpSwpHints()->DeRegister(); + } } + getIDocumentState().SetModified(); } commit adcb19b32076b69e0abfb0b79db6263f59839dac Author: Khaled Hosny <khaledho...@eglug.org> Date: Tue Mar 28 19:58:25 2017 +0200 tdf#106755: Fix script type for combining marks We are classifying characters in the âCombining Diacritical Marksâ Unicode block with ScriptType::LATIN, but these are combining marks and can combine with any script and should have been ScriptType::WEAK. Just removing them from the range in scriptList does the trick as we will fallback to getting the script classification based on the Unicode script property. Change-Id: I3577f4b03360a1c8e094a207f01b6bbb6abbaf30 Reviewed-on: https://gerrit.libreoffice.org/35811 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 55ddbfc610d2a00e565ca7bcb0277da33bb90947) Reviewed-on: https://gerrit.libreoffice.org/35815 (cherry picked from commit 1c5d8ea51f9da89d76b2b2d3bb896225a6ac9dca) diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx index c00c716efac2..fb1a155ae9db 100644 --- a/i18npool/qa/cppunit/test_breakiterator.cxx +++ b/i18npool/qa/cppunit/test_breakiterator.cxx @@ -759,6 +759,10 @@ void TestBreakIterator::testWeak() { 0x0001, 0x0002, 0x0020, 0x00A0, + 0x0300, 0x036F, //Combining Diacritical Marks + 0x1AB0, 0x1AFF, //Combining Diacritical Marks Extended + 0x1DC0, 0x1DFF, //Combining Diacritical Marks Supplement + 0x20D0, 0x20FF, //Combining Diacritical Marks for Symbols 0x2150, 0x215F, //Number Forms, fractions 0x2160, 0x2180, //Number Forms, roman numerals 0x2200, 0x22FF, //Mathematical Operators diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx index 33ac5864a79c..f8a39ff2d253 100644 --- a/i18npool/source/breakiterator/breakiteratorImpl.cxx +++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx @@ -444,7 +444,8 @@ struct UBlock2Script static const UBlock2Script scriptList[] = { {UBLOCK_NO_BLOCK, UBLOCK_NO_BLOCK, ScriptType::WEAK}, - {UBLOCK_BASIC_LATIN, UBLOCK_ARMENIAN, ScriptType::LATIN}, + {UBLOCK_BASIC_LATIN, UBLOCK_SPACING_MODIFIER_LETTERS, ScriptType::LATIN}, + {UBLOCK_GREEK, UBLOCK_ARMENIAN, ScriptType::LATIN}, {UBLOCK_HEBREW, UBLOCK_MYANMAR, ScriptType::COMPLEX}, {UBLOCK_GEORGIAN, UBLOCK_GEORGIAN, ScriptType::LATIN}, {UBLOCK_HANGUL_JAMO, UBLOCK_HANGUL_JAMO, ScriptType::ASIAN}, commit 93df778190486ed9ddc0cb506ef1db0cd8171137 Author: Michael Meeks <michael.me...@collabora.com> Date: Tue Mar 28 10:35:50 2017 +0100 Attempted fix for mirrored geometry crasher. Only plausible cause is pWindow->GetParent() being null, while we have a pParent which has to be valid. http://crashreport.libreoffice.org/stats/crash_details/6161398d-17b6-4a93-aa70-a559efa07868 Code was initially introduced in this form: commit 4716735ba7d0ad133ff018481f94d6b4f201bbd9 Author: Stephan Schäfer <s...@openoffice.org> Date: Thu Sep 19 15:46:19 2002 +0000 #103362# improve positioning and resizing of system windows No public report, sadly. And modified by commit fba46c6efd08d50fee92cc11546f3ed253a57af8 Author: Chris Sherlock <chris.sherloc...@gmail.com> Date: Mon Feb 3 16:46:04 2014 +1100 fdo#74424 Use Window::GetOutDev() to access ImplReMirrored() Part of the decoupling of Window from OutputDevice. We now get he Window's OutputDevice instance and manipulate this. Do not rely on the inherited function. where the GetParent()/pWindow->GetParent() problem surfaces Change-Id: Ia261028a4719525135e3fe4b00074427c1d9df6c Reviewed-on: https://gerrit.libreoffice.org/35796 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> (cherry picked from commit d93b8268da982ad26db9e03156ce9b89f3410486) Reviewed-on: https://gerrit.libreoffice.org/35827 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 39a09641a1d2e1b50c831fe5ecf3dc0b0174a210) diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index e483e2952b7c..50e7435eeb53 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2722,7 +2722,7 @@ void Window::setPosSizePixel( long nX, long nY, mpWindowImpl->mbDefSize = false; // The top BorderWindow is the window which is to be positioned - vcl::Window* pWindow = this; + VclPtr<vcl::Window> pWindow = this; while ( pWindow->mpWindowImpl->mpBorderWindow ) pWindow = pWindow->mpWindowImpl->mpBorderWindow; @@ -2739,7 +2739,8 @@ void Window::setPosSizePixel( long nX, long nY, nHeight = pWindow->mnOutHeight; sal_uInt16 nSysFlags=0; - vcl::Window *pParent = GetParent(); + VclPtr<vcl::Window> pParent = GetParent(); + VclPtr<vcl::Window> pWinParent = pWindow->GetParent(); if( nFlags & PosSizeFlags::Width ) nSysFlags |= SAL_FRAME_POSSIZE_WIDTH; @@ -2748,9 +2749,9 @@ void Window::setPosSizePixel( long nX, long nY, if( nFlags & PosSizeFlags::X ) { nSysFlags |= SAL_FRAME_POSSIZE_X; - if( pParent && (pWindow->GetStyle() & WB_SYSTEMCHILDWINDOW) ) + if( pWinParent && (pWindow->GetStyle() & WB_SYSTEMCHILDWINDOW) ) { - nX += pParent->mnOutOffX; + nX += pWinParent->mnOutOffX; } if( pParent && pParent->ImplIsAntiparallel() ) { @@ -2765,9 +2766,9 @@ void Window::setPosSizePixel( long nX, long nY, { // --- RTL --- make sure the old right aligned position is not changed // system windows will always grow to the right - if ( pParent ) + if ( pWinParent ) { - OutputDevice *pParentOutDev = pParent->GetOutDev(); + OutputDevice *pParentOutDev = pWinParent->GetOutDev(); if( pParentOutDev->HasMirroredGraphics() ) { long myWidth = nOldWidth; @@ -2777,13 +2778,13 @@ void Window::setPosSizePixel( long nX, long nY, myWidth = nWidth; nFlags |= PosSizeFlags::X; nSysFlags |= SAL_FRAME_POSSIZE_X; - nX = pParent->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nX - mpWindowImpl->mpFrame->GetUnmirroredGeometry().nLeftDecoration + - pParent->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nWidth - myWidth - 1 - mpWindowImpl->mpFrame->GetUnmirroredGeometry().nX; + nX = pWinParent->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nX - mpWindowImpl->mpFrame->GetUnmirroredGeometry().nLeftDecoration + + pWinParent->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nWidth - myWidth - 1 - mpWindowImpl->mpFrame->GetUnmirroredGeometry().nX; if(!(nFlags & PosSizeFlags::Y)) { nFlags |= PosSizeFlags::Y; nSysFlags |= SAL_FRAME_POSSIZE_Y; - nY = mpWindowImpl->mpFrame->GetUnmirroredGeometry().nY - pWindow->GetParent()->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nY - + nY = mpWindowImpl->mpFrame->GetUnmirroredGeometry().nY - pWinParent->mpWindowImpl->mpFrame->GetUnmirroredGeometry().nY - mpWindowImpl->mpFrame->GetUnmirroredGeometry().nTopDecoration; } } @@ -2792,9 +2793,9 @@ void Window::setPosSizePixel( long nX, long nY, if( nFlags & PosSizeFlags::Y ) { nSysFlags |= SAL_FRAME_POSSIZE_Y; - if( pParent && (pWindow->GetStyle() & WB_SYSTEMCHILDWINDOW) ) + if( pWinParent && (pWindow->GetStyle() & WB_SYSTEMCHILDWINDOW) ) { - nY += pParent->mnOutOffY; + nY += pWinParent->mnOutOffY; } } @@ -2803,7 +2804,7 @@ void Window::setPosSizePixel( long nX, long nY, // check for min/max client size and adjust size accordingly // otherwise it may happen that the resize event is ignored, i.e. the old size remains // unchanged but ImplHandleResize() is called with the wrong size - SystemWindow *pSystemWindow = dynamic_cast< SystemWindow* >( pWindow ); + SystemWindow *pSystemWindow = dynamic_cast< SystemWindow* >( pWindow.get() ); if( pSystemWindow ) { Size aMinSize = pSystemWindow->GetMinOutputSizePixel(); commit 3bec59079aec39a94867a326739cb877805af6f7 Author: Jean-Baptiste Faure <jbfa...@libreoffice.org> Date: Mon Mar 27 22:08:26 2017 +0200 tdf#105843 : restore Application Start and Stop events Change-Id: Ifc99fcf84182edb49cac741f7bb10a1b239d5703 Reviewed-on: https://gerrit.libreoffice.org/35779 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> (cherry picked from commit 7c0054f1b7c3c475bff7a5adfdea0feaecf20748) Reviewed-on: https://gerrit.libreoffice.org/35812 Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 98399c291239e309769fe9a1099655343b21ccd2) diff --git a/include/unotools/eventcfg.hxx b/include/unotools/eventcfg.hxx index 03ccdd4181d2..51f54ccd4dda 100644 --- a/include/unotools/eventcfg.hxx +++ b/include/unotools/eventcfg.hxx @@ -31,6 +31,8 @@ enum class GlobalEventId { + STARTAPP, + CLOSEAPP, DOCCREATED, CREATEDOC, LOADFINISHED, diff --git a/unotools/source/config/eventcfg.cxx b/unotools/source/config/eventcfg.cxx index f9e846ea2bf6..fe14059ab05f 100644 --- a/unotools/source/config/eventcfg.cxx +++ b/unotools/source/config/eventcfg.cxx @@ -46,6 +46,8 @@ using namespace ::com::sun::star; static o3tl::enumarray<GlobalEventId, const char*> pEventAsciiNames = { +"OnStartApp", +"OnCloseApp", "OnCreate", "OnNew", "OnLoadFinished", commit 94f8eaad9cc8aa0325257a529a26559a1f911a6b Author: Caolán McNamara <caol...@redhat.com> Date: Mon Mar 20 11:50:57 2017 +0000 Resolves: tdf#106612 fix double click in draw/impress navigator Change-Id: Ic4b08c6e5cd430b5278bdc2cb7f1205bba160740 (cherry picked from commit 879aa0f71d98969f6bf2e540f1e95c7c9e0e05bf) Reviewed-on: https://gerrit.libreoffice.org/35539 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 9fd212c3fbc28868e15f5d8e8ae598ac34176991) diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx index 084fdaf2fc03..d689036e3072 100644 --- a/sd/source/ui/dlg/navigatr.cxx +++ b/sd/source/ui/dlg/navigatr.cxx @@ -82,6 +82,9 @@ SdNavigatorWin::SdNavigatorWin(vcl::Window* pParent, SfxBindings* pInBindings) maTlbObjects->SetAccessibleName(SD_RESSTR(STR_OBJECTS_TREE)); + maTlbObjects->SetDoubleClickHdl(LINK(this, SdNavigatorWin, ClickObjectHdl)); + maTlbObjects->SetSelectionMode(SelectionMode::Single); + maToolbox->SetSelectHdl( LINK( this, SdNavigatorWin, SelectToolboxHdl ) ); maToolbox->SetDropdownClickHdl( LINK(this, SdNavigatorWin, DropdownClickToolBoxHdl) ); const sal_uInt16 nDragTypeId = maToolbox->GetItemId("dragmode"); commit 8a622164d80c780863b09f01d16f4e5c919b869c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Wed Jan 4 23:58:13 2017 +0100 tdf#105069, store the VBA module info for new modules as well This was never a problem until we started to export the VBA stream instead of just writing back the imported stream. Change-Id: I4e20e717bebd3dc649efcf1b9c18b6e5053303d9 Reviewed-on: https://gerrit.libreoffice.org/32741 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> (cherry picked from commit 2be139d76bdb66e77719613d802dc0047c284456) Reviewed-on: https://gerrit.libreoffice.org/35198 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit fd242f02b195f896b23336fe51773d7abf310d4e) diff --git a/basctl/source/basicide/scriptdocument.cxx b/basctl/source/basicide/scriptdocument.cxx index a99fefafe8a3..135ea2b9659b 100644 --- a/basctl/source/basicide/scriptdocument.cxx +++ b/basctl/source/basicide/scriptdocument.cxx @@ -34,6 +34,8 @@ #include <com/sun/star/document/XEmbeddedScripts.hpp> #include <com/sun/star/script/vba/XVBACompatibility.hpp> #include <com/sun/star/script/vba/XVBAModuleInfo.hpp> +#include <com/sun/star/script/ModuleInfo.hpp> +#include <com/sun/star/script/ModuleType.hpp> #include <sfx2/objsh.hxx> #include <sfx2/bindings.hxx> @@ -669,6 +671,14 @@ namespace basctl if ( _bCreateMain ) _out_rNewModuleCode += "Sub Main\n\nEnd Sub\n" ; + Reference< XVBAModuleInfo > xVBAModuleInfo(xLib, UNO_QUERY); + if (xVBAModuleInfo.is()) + { + css::script::ModuleInfo aModuleInfo; + aModuleInfo.ModuleType = css::script::ModuleType::NORMAL; + xVBAModuleInfo->insertModuleInfo(_rModName, aModuleInfo); + } + // insert module into library xLib->insertByName( _rModName, makeAny( _out_rNewModuleCode ) ); } commit 25bf8661d2a3ac1e4916efd32f44a716b345f2eb Author: Caolán McNamara <caol...@redhat.com> Date: Tue Mar 28 14:45:00 2017 +0100 valgrind: use of uninitialized values Change-Id: I5b8c6d4d4576fd88dbffdfc710cbd9b2e9429942 (cherry picked from commit b7152aff51665bc802af66e6e599a89e0344c92f) Reviewed-on: https://gerrit.libreoffice.org/35805 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 8337a9b186abc5a3393127227ec727f019f09dc5) diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 1ac086b988db..81d9ae86c8bf 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -1941,9 +1941,8 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt for ( sal_uInt16 i = 0; i < nNumElem; i++ ) { PropVec aHandlePropVec; - sal_uInt32 nFlagsTmp; - SvxMSDffHandleFlags nFlags; - sal_Int32 nPositionX, nPositionY, nCenterX, nCenterY, nRangeXMin, nRangeXMax, nRangeYMin, nRangeYMax; + sal_uInt32 nFlagsTmp(0); + sal_Int32 nPositionX(0), nPositionY(0), nCenterX(0), nCenterY(0), nRangeXMin(0), nRangeXMax(0), nRangeYMin(0), nRangeYMax(0); rIn.ReadUInt32( nFlagsTmp ) .ReadInt32( nPositionX ) .ReadInt32( nPositionY ) @@ -1953,7 +1952,7 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt .ReadInt32( nRangeXMax ) .ReadInt32( nRangeYMin ) .ReadInt32( nRangeYMax ); - nFlags = static_cast<SvxMSDffHandleFlags>(nFlagsTmp); + SvxMSDffHandleFlags nFlags = static_cast<SvxMSDffHandleFlags>(nFlagsTmp); if ( nPositionX == 2 ) // replacing center position with absolute value nPositionX = nCoordWidth / 2; if ( nPositionY == 2 ) @@ -2210,7 +2209,6 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt { css::uno::Sequence< css::drawing::EnhancedCustomShapeSegment > aSegments; - sal_uInt16 i, nTmp; sal_uInt16 nNumElemSeg = 0; if ( SeekToContent( DFF_Prop_pSegmentInfo, rIn ) ) @@ -2227,14 +2225,13 @@ void DffPropertyReader::ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxIt } if ( nNumElemSeg ) { - sal_Int16 nCommand; - sal_Int16 nCnt; aSegments.realloc( nNumElemSeg ); - for ( i = 0; i < nNumElemSeg; i++ ) + for (sal_uInt16 i = 0; i < nNumElemSeg; ++i) { + sal_uInt16 nTmp(0); rIn.ReadUInt16( nTmp ); - nCommand = EnhancedCustomShapeSegmentCommand::UNKNOWN; - nCnt = (sal_Int16)( nTmp & 0x1fff );//Last 13 bits for segment points number + sal_Int16 nCommand = EnhancedCustomShapeSegmentCommand::UNKNOWN; + sal_Int16 nCnt = (sal_Int16)( nTmp & 0x1fff );//Last 13 bits for segment points number switch( nTmp >> 13 )//First 3 bits for command type { case 0x0: @@ -3204,7 +3201,7 @@ bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, sal_u if ( !maFidcls.empty() ) { sal_uInt32 nMerk = rSt.Tell(); - sal_uInt32 nShapeId, nSec = ( nId >> 10 ) - 1; + sal_uInt32 nSec = ( nId >> 10 ) - 1; if ( nSec < mnIdClusters ) { OffsetMap::const_iterator it = maDgOffsetTable.find( maFidcls[ nSec ].dgid ); @@ -3227,6 +3224,7 @@ bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, sal_u DffRecordHeader aShapeHd; if ( SeekToRec( rSt, DFF_msofbtSp, aEscherObjListHd.GetRecEndFilePos(), &aShapeHd ) ) { + sal_uInt32 nShapeId(0); rSt.ReadUInt32( nShapeId ); if ( nId == nShapeId ) { @@ -4235,7 +4233,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r aObjData.bChildAnchor = maShapeRecords.SeekToContent( rSt, DFF_msofbtChildAnchor, SEEK_FROM_CURRENT_AND_RESTART ); if ( aObjData.bChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -4867,14 +4865,14 @@ Rectangle SvxMSDffManager::GetGlobalChildAnchor( const DffRecordHeader& rHd, SvS { if ( GetSvxMSDffSettings() & SVXMSDFF_SETTINGS_IMPORT_PPT ) { - sal_Int32 l, t, r, b; + sal_Int32 l(0), t(0), r(0), b(0); if ( aShapeAtom.nRecLen == 16 ) { rSt.ReadInt32( l ).ReadInt32( t ).ReadInt32( r ).ReadInt32( b ); } else { - sal_Int16 ls, ts, rs, bs; + sal_Int16 ls(0), ts(0), rs(0), bs(0); rSt.ReadInt16( ts ).ReadInt16( ls ).ReadInt16( rs ).ReadInt16( bs ); // the order of coordinates is a bit strange... l = ls; t = ts; @@ -4900,7 +4898,7 @@ Rectangle SvxMSDffManager::GetGlobalChildAnchor( const DffRecordHeader& rHd, SvS } else if ( aShapeAtom.nRecType == DFF_msofbtChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -4946,7 +4944,7 @@ void SvxMSDffManager::GetGroupAnchors( const DffRecordHeader& rHd, SvStream& rSt break; if ( aShapeAtom.nRecType == DFF_msofbtChildAnchor ) { - sal_Int32 l, o, r, u; + sal_Int32 l(0), o(0), r(0), u(0); rSt.ReadInt32( l ).ReadInt32( o ).ReadInt32( r ).ReadInt32( u ); Scale( l ); Scale( o ); @@ -6063,12 +6061,13 @@ bool SvxMSDffManager::GetShapeContainerData( SvStream& rSt, // We've found the Property Table: // search for the Blip Property! sal_uLong nPropRead = 0; - sal_uInt16 nPropId; - sal_uInt32 nPropVal; nLenShapePropTbl = nLength; long nStartShapePropTbl = rSt.Tell(); do { + sal_uInt16 nPropId(0); + sal_uInt32 nPropVal(0); + rSt.ReadUInt16( nPropId ) .ReadUInt32( nPropVal ); nPropRead += 6; @@ -6357,7 +6356,7 @@ bool SvxMSDffManager::GetBLIPDirect( SvStream& rBLIPStream, Graphic& rData, Rect rBLIPStream.SeekRel( nSkip + 20 ); // read in size of metafile in EMUS - sal_Int32 width, height; + sal_Int32 width(0), height(0); rBLIPStream.ReadInt32( width ).ReadInt32( height ); aMtfSize100.Width() = width; aMtfSize100.Height() = height; @@ -6723,16 +6722,16 @@ bool SvxMSDffManager::ConvertToOle2( SvStream& rStm, sal_uInt32 nReadLen, if( xOle10Stm->GetError() ) return false; - sal_uInt32 nType; - sal_uInt32 nRecType; - sal_uInt32 nStrLen; OUString aSvrName; sal_uInt32 nDummy0; sal_uInt32 nDummy1; - sal_uInt32 nDataLen; sal_uInt32 nBytesRead = 0; do { + sal_uInt32 nType(0); + sal_uInt32 nRecType(0); + sal_uInt32 nStrLen(0); + rStm.ReadUInt32( nType ); rStm.ReadUInt32( nRecType ); rStm.ReadUInt32( nStrLen ); @@ -6749,6 +6748,7 @@ bool SvxMSDffManager::ConvertToOle2( SvStream& rStm, sal_uInt32 nReadLen, } rStm.ReadUInt32( nDummy0 ); rStm.ReadUInt32( nDummy1 ); + sal_uInt32 nDataLen(0); rStm.ReadUInt32( nDataLen ); nBytesRead += 6 * sizeof( sal_uInt32 ) + nStrLen + nDataLen; @@ -7168,7 +7168,7 @@ SdrOle2Obj* SvxMSDffManager::CreateSdrOLEFromStorage( } else if( pDataStrm ) { - sal_uInt32 nLen, nDummy; + sal_uInt32 nLen(0), nDummy(0); pDataStrm->ReadUInt32( nLen ).ReadUInt32( nDummy ); if( SVSTREAM_OK != pDataStrm->GetError() || // Id in BugDoc - exist there other Ids?
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits