[Libreoffice-commits] core.git: vcl/source
Tomaž Vajngerl (via logerrit)
logerrit at kemper.freedesktop.org
Sun Dec 6 22:33:57 UTC 2020
vcl/source/gdi/impgraph.cxx | 137 ++++++++++++--------------------------------
1 file changed, 39 insertions(+), 98 deletions(-)
New commits:
commit 947a38ed1d0e2e2041e1ce4c426caa606ea86cc8
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri Nov 27 20:37:23 2020 +0900
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sun Dec 6 23:33:13 2020 +0100
vcl: remove the old (<5.0) graphic swap file version
Always use the 5.0 Graphic swap file version. Actually for swap
the version doesn't really matter as we don't have to have a
stable file structure for the swap files (all the files are
removed when LibreOffice shuts down).
Change-Id: Ib1a94d7a9681ba51b4061e86d0d42080fb0f7f17
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107283
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index d251eab7a6c9..42de58769aca 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1105,78 +1105,37 @@ void ImpGraphic::ImplSetContext( const std::shared_ptr<GraphicReader>& pReader )
bool ImpGraphic::swapInContent(SvStream& rStream)
{
+ bool bRet = false;
+
ensureAvailable();
- MapMode aMapMode;
- Size aSize;
- sal_uInt32 nId;
- sal_Int32 nType;
- sal_Int32 nPageIndex = -1;
+ MapMode aMapMode;
+ Size aSize;
+ sal_uInt32 nId;
+ sal_Int32 nType;
+ sal_Int32 nPageIndex = -1;
const SvStreamEndian nOldFormat = rStream.GetEndian();
- bool bRet = false;
rStream.SetEndian( SvStreamEndian::LITTLE );
rStream.ReadUInt32( nId );
// check version
- if( GRAPHIC_FORMAT_50 == nId )
- {
- // read new style header
- VersionCompat aCompat( rStream, StreamMode::READ );
+ if (GRAPHIC_FORMAT_50 != nId)
+ return false;
- rStream.ReadInt32( nType );
- sal_Int32 nLen;
- rStream.ReadInt32( nLen );
- TypeSerializer aSerializer(rStream);
- aSerializer.readSize(aSize);
- ReadMapMode( rStream, aMapMode );
+ // read new style header
+ VersionCompat aCompat(rStream, StreamMode::READ);
- if (aCompat.GetVersion() >= 2)
- {
- rStream.ReadInt32(nPageIndex);
- }
- }
- else
- {
- // read old style header
- sal_Int32 nWidth, nHeight;
- sal_Int32 nMapMode, nScaleNumX, nScaleDenomX;
- sal_Int32 nScaleNumY, nScaleDenomY, nOffsX, nOffsY;
-
- rStream.SeekRel(-4);
-
- sal_Int32 nLen;
- rStream.ReadInt32(nType);
- rStream.ReadInt32(nLen);
- rStream.ReadInt32(nWidth);
- rStream.ReadInt32(nHeight);
- rStream.ReadInt32(nMapMode);
- rStream.ReadInt32(nScaleNumX);
- rStream.ReadInt32(nScaleDenomX);
- rStream.ReadInt32(nScaleNumY);
- rStream.ReadInt32(nScaleDenomY);
- rStream.ReadInt32(nOffsX);
- rStream.ReadInt32(nOffsY);
-
- // swapped
- if( nType > 100 )
- {
- nType = OSL_SWAPDWORD( nType );
- nWidth = OSL_SWAPDWORD( nWidth );
- nHeight = OSL_SWAPDWORD( nHeight );
- nMapMode = OSL_SWAPDWORD( nMapMode );
- nScaleNumX = OSL_SWAPDWORD( nScaleNumX );
- nScaleDenomX = OSL_SWAPDWORD( nScaleDenomX );
- nScaleNumY = OSL_SWAPDWORD( nScaleNumY );
- nScaleDenomY = OSL_SWAPDWORD( nScaleDenomY );
- nOffsX = OSL_SWAPDWORD( nOffsX );
- nOffsY = OSL_SWAPDWORD( nOffsY );
- }
+ rStream.ReadInt32(nType);
+ sal_Int32 nLen;
+ rStream.ReadInt32(nLen);
+ TypeSerializer aSerializer(rStream);
+ aSerializer.readSize(aSize);
+ ReadMapMode(rStream, aMapMode);
- aSize = Size( nWidth, nHeight );
- aMapMode = MapMode( static_cast<MapUnit>(nMapMode), Point( nOffsX, nOffsY ),
- Fraction( nScaleNumX, nScaleDenomX ),
- Fraction( nScaleNumY, nScaleDenomY ) );
+ if (aCompat.GetVersion() >= 2)
+ {
+ rStream.ReadInt32(nPageIndex);
}
meType = static_cast<GraphicType>(nType);
@@ -1237,7 +1196,7 @@ bool ImpGraphic::swapInContent(SvStream& rStream)
meType = GraphicType::Default;
}
- if( bRet )
+ if (bRet)
{
ImplSetPrefMapMode( aMapMode );
ImplSetPrefSize( aSize );
@@ -1248,7 +1207,7 @@ bool ImpGraphic::swapInContent(SvStream& rStream)
else
bRet = true;
- rStream.SetEndian( nOldFormat );
+ rStream.SetEndian(nOldFormat);
return bRet;
}
@@ -1257,65 +1216,47 @@ bool ImpGraphic::swapOutContent(SvStream& rOStm)
{
ensureAvailable();
- if( ( meType == GraphicType::NONE ) || ( meType == GraphicType::Default ) || isSwappedOut() )
+ if (meType == GraphicType::NONE || meType == GraphicType::Default || isSwappedOut())
return false;
- const MapMode aMapMode( ImplGetPrefMapMode() );
- const Size aSize( ImplGetPrefSize() );
const SvStreamEndian nOldFormat = rOStm.GetEndian();
- sal_uLong nDataFieldPos;
- rOStm.SetEndian( SvStreamEndian::LITTLE );
+ const MapMode aMapMode = ImplGetPrefMapMode();
+ const Size aSize = ImplGetPrefSize();
+ sal_uLong nDataFieldPos;
- // write correct version ( old style/new style header )
- if( rOStm.GetVersion() >= SOFFICE_FILEFORMAT_50 )
- {
- // write ID for new format (5.0)
- rOStm.WriteUInt32( GRAPHIC_FORMAT_50 );
+ rOStm.SetEndian(SvStreamEndian::LITTLE);
- // write new style header
+ // write ID for new format (5.0)
+ rOStm.WriteUInt32(GRAPHIC_FORMAT_50);
+
+ // write new style header
+ {
VersionCompat aCompat(rOStm, StreamMode::WRITE, 2);
- rOStm.WriteInt32( static_cast<sal_Int32>(meType) );
+ rOStm.WriteInt32(static_cast<sal_Int32>(meType));
// data size is updated later
nDataFieldPos = rOStm.Tell();
- rOStm.WriteInt32( 0 );
+ rOStm.WriteInt32(0);
TypeSerializer aSerializer(rOStm);
aSerializer.writeSize(aSize);
- WriteMapMode( rOStm, aMapMode );
+ WriteMapMode(rOStm, aMapMode);
// Version 2
rOStm.WriteInt32(getPageNumber());
}
- else
- {
- // write old style (<=4.0) header
- rOStm.WriteInt32( static_cast<sal_Int32>(meType) );
-
- // data size is updated later
- nDataFieldPos = rOStm.Tell();
- rOStm.WriteInt32( 0 );
- rOStm.WriteInt32( aSize.Width() );
- rOStm.WriteInt32( aSize.Height() );
- rOStm.WriteInt32( static_cast<sal_uInt16>(aMapMode.GetMapUnit()) );
- rOStm.WriteInt32( aMapMode.GetScaleX().GetNumerator() );
- rOStm.WriteInt32( aMapMode.GetScaleX().GetDenominator() );
- rOStm.WriteInt32( aMapMode.GetScaleY().GetNumerator() );
- rOStm.WriteInt32( aMapMode.GetScaleY().GetDenominator() );
- rOStm.WriteInt32( aMapMode.GetOrigin().X() );
- rOStm.WriteInt32( aMapMode.GetOrigin().Y() );
- }
bool bRet = false;
+
// write data block
- if( !rOStm.GetError() )
+ if (!rOStm.GetError())
{
const sal_uLong nDataStart = rOStm.Tell();
- if( ImplIsSupportedGraphic() )
+ if (ImplIsSupportedGraphic())
WriteImpGraphic( rOStm, *this );
if( !rOStm.GetError() )
@@ -1328,7 +1269,7 @@ bool ImpGraphic::swapOutContent(SvStream& rOStm)
}
}
- rOStm.SetEndian( nOldFormat );
+ rOStm.SetEndian(nOldFormat);
return bRet;
}
More information about the Libreoffice-commits
mailing list