vcl/source/gdi/metaact.cxx | 40 +++++++++++++++++++++++++--------------- vcl/source/gdi/outdev3.cxx | 3 +++ 2 files changed, 28 insertions(+), 15 deletions(-)
New commits: commit 02abb559fb506e3d3911bbf058c9a60d28b0a3b5 Author: Michael Stahl <mst...@redhat.com> Date: Sun Mar 9 23:51:12 2014 +0100 vcl: MetaText*Action: revert unwanted file format changes Horrible things happen while loading bugdoc from rhbz#1069030. (regression from 30bb1eddba2b4a36b4354303ffcb37a3a15f38a6) Change-Id: I7f71a41289f57598861c3c005c1e23cbfb4f8111 diff --git a/vcl/source/gdi/metaact.cxx b/vcl/source/gdi/metaact.cxx index ebf9eb8..eaa511f 100644 --- a/vcl/source/gdi/metaact.cxx +++ b/vcl/source/gdi/metaact.cxx @@ -1258,8 +1258,8 @@ void MetaTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData ) WRITE_BASE_COMPAT( rOStm, 2, pData ); WritePair( rOStm, maPt ); rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet ); - rOStm.WriteInt32(mnIndex); - rOStm.WriteInt32(mnLen); + rOStm.WriteUInt16(mnIndex); + rOStm.WriteUInt16(mnLen); write_uInt16_lenPrefixed_uInt16s_FromOUString(rOStm, maStr); // version 2 } @@ -1271,8 +1271,11 @@ void MetaTextAction::Read( SvStream& rIStm, ImplMetaReadData* pData ) COMPAT( rIStm ); ReadPair( rIStm, maPt ); maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet); - rIStm .ReadInt32( mnIndex ); - rIStm .ReadInt32( mnLen ); + sal_uInt16 nTmp(0); + rIStm.ReadUInt16(nTmp); + mnIndex = nTmp; + rIStm.ReadUInt16(nTmp); + mnLen = nTmp; if ( aCompat.GetVersion() >= 2 ) // Version 2 maStr = read_uInt16_lenPrefixed_uInt16s_ToOUString(rIStm); @@ -1395,9 +1398,9 @@ void MetaTextArrayAction::Write( SvStream& rOStm, ImplMetaWriteData* pData ) WRITE_BASE_COMPAT( rOStm, 2, pData ); WritePair( rOStm, maStartPt ); rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet ); - rOStm.WriteInt32(mnIndex); - rOStm.WriteInt32(mnLen); - rOStm.WriteInt32(nAryLen); + rOStm.WriteUInt16(mnIndex); + rOStm.WriteUInt16(mnLen); + rOStm.WriteUInt16(nAryLen); for (sal_Int32 i = 0; i < nAryLen; ++i) rOStm.WriteInt32( mpDXAry[ i ] ); @@ -1416,9 +1419,13 @@ void MetaTextArrayAction::Read( SvStream& rIStm, ImplMetaReadData* pData ) COMPAT( rIStm ); ReadPair( rIStm, maStartPt ); maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet); - rIStm .ReadInt32( mnIndex ); - rIStm .ReadInt32( mnLen ); - rIStm .ReadInt32( nAryLen ); + sal_uInt16 nTmp(0); + rIStm.ReadUInt16(nTmp); + mnIndex = nTmp; + rIStm.ReadUInt16(nTmp); + mnLen = nTmp; + rIStm.ReadUInt16(nTmp); + nAryLen = nTmp; if ( mnIndex + mnLen > maStr.getLength() ) { @@ -1533,8 +1540,8 @@ void MetaStretchTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData ) WritePair( rOStm, maPt ); rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet ); rOStm.WriteUInt32( mnWidth ); - rOStm.WriteInt32( mnIndex ); - rOStm.WriteInt32( mnLen ); + rOStm.WriteUInt16( mnIndex ); + rOStm.WriteUInt16( mnLen ); write_uInt16_lenPrefixed_uInt16s_FromOUString(rOStm, maStr); // version 2 } @@ -1546,9 +1553,12 @@ void MetaStretchTextAction::Read( SvStream& rIStm, ImplMetaReadData* pData ) COMPAT( rIStm ); ReadPair( rIStm, maPt ); maStr = rIStm.ReadUniOrByteString(pData->meActualCharSet); - rIStm .ReadUInt32( mnWidth ); - rIStm .ReadInt32( mnIndex ); - rIStm .ReadInt32( mnLen ); + rIStm.ReadUInt32( mnWidth ); + sal_uInt16 nTmp(0); + rIStm.ReadUInt16(nTmp); + mnIndex = nTmp; + rIStm.ReadUInt16(nTmp); + mnLen = nTmp; if ( aCompat.GetVersion() >= 2 ) // Version 2 maStr = read_uInt16_lenPrefixed_uInt16s_ToOUString(rIStm); diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 74cd8e7..628d309 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -5680,6 +5680,9 @@ ImplLayoutArgs OutputDevice::ImplPrepareLayoutArgs( OUString& rStr, const sal_Int32 nMinIndex, const sal_Int32 nLen, long nPixelWidth, const sal_Int32* pDXArray ) const { + assert(nMinIndex >= 0); + assert(nLen >= 0); + // get string length for calculating extents sal_Int32 nEndIndex = rStr.getLength(); if( nMinIndex + nLen < nEndIndex ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits