summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-01-14 09:55:41 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-01-14 20:22:35 +0100
commit9013666c5ad32c5733be7ae27e872ff0d1b3db7b (patch)
treead2f75a7cd34960ed3d993a77257c670a3c813ab /tools
parent3831aa8114906e17fcc2d4d0ea689d11f37c4407 (diff)
cid#1471346 Uncaught exception
Change-Id: I535affd6597636aa32e1cf9c6005238f9503ef6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109266 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/source/generic/poly.cxx4
-rw-r--r--tools/source/generic/poly2.cxx4
-rw-r--r--tools/source/stream/vcompat.cxx69
3 files changed, 39 insertions, 38 deletions
diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx
index 7e09e2a75566..9d06055150b4 100644
--- a/tools/source/generic/poly.cxx
+++ b/tools/source/generic/poly.cxx
@@ -1667,7 +1667,7 @@ void Polygon::ImplRead( SvStream& rIStream )
void Polygon::Read( SvStream& rIStream )
{
- VersionCompat aCompat( rIStream, StreamMode::READ );
+ VersionCompatRead aCompat(rIStream);
ImplRead( rIStream );
}
@@ -1684,7 +1684,7 @@ void Polygon::ImplWrite( SvStream& rOStream ) const
void Polygon::Write( SvStream& rOStream ) const
{
- VersionCompat aCompat( rOStream, StreamMode::WRITE, 1 );
+ VersionCompatWrite aCompat(rOStream, 1);
ImplWrite( rOStream );
}
diff --git a/tools/source/generic/poly2.cxx b/tools/source/generic/poly2.cxx
index 285044b6fcc6..631e88caf401 100644
--- a/tools/source/generic/poly2.cxx
+++ b/tools/source/generic/poly2.cxx
@@ -427,7 +427,7 @@ SvStream& WritePolyPolygon( SvStream& rOStream, const tools::PolyPolygon& rPolyP
void PolyPolygon::Read( SvStream& rIStream )
{
- VersionCompat aCompat( rIStream, StreamMode::READ );
+ VersionCompatRead aCompat(rIStream);
sal_uInt16 nPolyCount(0);
@@ -460,7 +460,7 @@ void PolyPolygon::Read( SvStream& rIStream )
void PolyPolygon::Write( SvStream& rOStream ) const
{
- VersionCompat aCompat( rOStream, StreamMode::WRITE, 1 );
+ VersionCompatWrite aCompat(rOStream, 1);
// Write number of polygons
sal_uInt16 nPolyCount = mpImplPolyPolygon->mvPolyAry.size();
diff --git a/tools/source/stream/vcompat.cxx b/tools/source/stream/vcompat.cxx
index a63440701360..bf85c0c9a4cf 100644
--- a/tools/source/stream/vcompat.cxx
+++ b/tools/source/stream/vcompat.cxx
@@ -20,48 +20,49 @@
#include <tools/stream.hxx>
#include <tools/vcompat.hxx>
-VersionCompat::VersionCompat( SvStream& rStm, StreamMode nStreamMode, sal_uInt16 nVersion ) :
- mpRWStm ( &rStm ),
- mnCompatPos ( 0 ),
- mnTotalSize ( 0 ),
- mnStmMode ( nStreamMode ),
- mnVersion ( nVersion )
+VersionCompatRead::VersionCompatRead(SvStream& rStm)
+ : mrRStm(rStm)
+ , mnCompatPos(0)
+ , mnTotalSize(0)
+ , mnVersion(1)
{
- if( mpRWStm->GetError() )
+ if (mrRStm.GetError())
return;
- if( StreamMode::WRITE == mnStmMode )
- {
- mpRWStm->WriteUInt16( mnVersion );
- mnCompatPos = mpRWStm->Tell();
- mnTotalSize = mnCompatPos + 4;
- mpRWStm->SeekRel( 4 );
- }
- else
- {
- mpRWStm->ReadUInt16( mnVersion );
- mpRWStm->ReadUInt32( mnTotalSize );
- mnCompatPos = mpRWStm->Tell();
- }
+ mrRStm.ReadUInt16(mnVersion);
+ mrRStm.ReadUInt32(mnTotalSize);
+ mnCompatPos = mrRStm.Tell();
}
-VersionCompat::~VersionCompat()
+VersionCompatWrite::VersionCompatWrite(SvStream& rStm, sal_uInt16 nVersion)
+ : mrWStm(rStm)
+ , mnCompatPos(0)
+ , mnTotalSize(0)
{
- if( StreamMode::WRITE == mnStmMode )
- {
- const sal_uInt32 nEndPos = mpRWStm->Tell();
+ if (mrWStm.GetError())
+ return;
+
+ mrWStm.WriteUInt16(nVersion);
+ mnCompatPos = mrWStm.Tell();
+ mnTotalSize = mnCompatPos + 4;
+ mrWStm.SeekRel(4);
+}
+
+VersionCompatRead::~VersionCompatRead()
+{
+ const sal_uInt32 nReadSize = mrRStm.Tell() - mnCompatPos;
+
+ if (mnTotalSize > nReadSize)
+ mrRStm.SeekRel(mnTotalSize - nReadSize);
+}
- mpRWStm->Seek( mnCompatPos );
- mpRWStm->WriteUInt32( nEndPos - mnTotalSize );
- mpRWStm->Seek( nEndPos );
- }
- else
- {
- const sal_uInt32 nReadSize = mpRWStm->Tell() - mnCompatPos;
+VersionCompatWrite::~VersionCompatWrite()
+{
+ const sal_uInt32 nEndPos = mrWStm.Tell();
- if( mnTotalSize > nReadSize )
- mpRWStm->SeekRel( mnTotalSize - nReadSize );
- }
+ mrWStm.Seek(mnCompatPos);
+ mrWStm.WriteUInt32(nEndPos - mnTotalSize);
+ mrWStm.Seek(nEndPos);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */