include/vcl/graph.hxx | 3 ++- vcl/inc/impgraph.hxx | 7 +++---- vcl/source/filter/graphicfilter.cxx | 30 +++++++++++++++--------------- vcl/source/gdi/graph.cxx | 10 ++++++++++ vcl/source/gdi/impgraph.cxx | 24 +++++++++++++++--------- 5 files changed, 45 insertions(+), 29 deletions(-)
New commits: commit 02de3a5206c7633d62ebc43edad37747e2c7a1de Author: Norbert Thiebaud <nthieb...@gmail.com> Date: Sat Mar 12 14:13:35 2016 -0600 vcl graph: stop abusing a pointer for a bool Change-Id: I816fe3a52c03fa5a3fd372492985783f9f6ff91c Reviewed-on: https://gerrit.libreoffice.org/23181 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx index 7514f87..0c10149 100644 --- a/include/vcl/graph.hxx +++ b/include/vcl/graph.hxx @@ -198,7 +198,8 @@ public: GraphicReader* GetContext(); void SetContext( GraphicReader* pReader ); - + void SetDummyContext(bool value); + bool IsDummyContext(); private: friend class GraphicObject; diff --git a/vcl/inc/impgraph.hxx b/vcl/inc/impgraph.hxx index 2eac350..5f26354 100644 --- a/vcl/inc/impgraph.hxx +++ b/vcl/inc/impgraph.hxx @@ -49,7 +49,7 @@ private: sal_uLong mnRefCount; bool mbSwapOut; bool mbSwapUnderway; - + bool mbDummyContext; SvgDataPtr maSvgData; private: @@ -115,8 +115,7 @@ private: GraphicReader* ImplGetContext() { return mpContext;} void ImplSetContext( GraphicReader* pReader ); - -private: + void ImplSetDummyContext( bool value ) { mbDummyContext = value; } bool ImplReadEmbedded( SvStream& rIStream ); bool ImplWriteEmbedded( SvStream& rOStream ); @@ -128,7 +127,7 @@ private: bool ImplSwapOut( SvStream* pOStm ); bool ImplIsSwapOut() const { return mbSwapOut;} - + bool ImplIsDummyContext() const { return mbDummyContext; } void ImplSetLink( const GfxLink& ); GfxLink ImplGetLink(); bool ImplIsLink() const; diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index 5720ef9..5f7ddcc 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -1326,7 +1326,7 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat sal_uInt16 nStatus; GraphicReader* pContext = rGraphic.GetContext(); GfxLinkType eLinkType = GFX_LINK_TYPE_NONE; - bool bDummyContext = ( pContext == reinterpret_cast<GraphicReader*>(1) ); + bool bDummyContext = rGraphic.IsDummyContext(); const bool bLinkSet = rGraphic.IsLink(); FilterConfigItem* pFilterConfigItem = nullptr; @@ -1376,7 +1376,7 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat { if( bDummyContext ) { - rGraphic.SetContext( nullptr ); + rGraphic.SetDummyContext( false ); nStreamBegin = 0; } else @@ -1387,7 +1387,7 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat // if pending, return GRFILTER_OK in order to request more bytes if( rIStream.GetError() == ERRCODE_IO_PENDING ) { - rGraphic.SetContext( reinterpret_cast<GraphicReader*>(1) ); + rGraphic.SetDummyContext(true); rIStream.ResetError(); rIStream.Seek( nStreamBegin ); return (sal_uInt16) ImplSetError( GRFILTER_OK ); @@ -1418,8 +1418,8 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat { if( aFilterName.equalsIgnoreAsciiCase( IMP_GIF ) ) { - if( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); if( !ImportGIF( rIStream, rGraphic ) ) nStatus = GRFILTER_FILTERERROR; @@ -1428,8 +1428,8 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat } else if( aFilterName.equalsIgnoreAsciiCase( IMP_PNG ) ) { - if ( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); vcl::PNGReader aPNGReader( rIStream ); @@ -1486,8 +1486,8 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat } else if( aFilterName.equalsIgnoreAsciiCase( IMP_JPEG ) ) { - if( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); // set LOGSIZE flag always, if not explicitly disabled // (see #90508 and #106763) @@ -1501,8 +1501,8 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat } else if( aFilterName.equalsIgnoreAsciiCase( IMP_SVG ) ) { - if( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); const sal_uInt32 nStreamPosition(rIStream.Tell()); const sal_uInt32 nStreamLength(rIStream.Seek(STREAM_SEEK_TO_END) - nStreamPosition); @@ -1571,16 +1571,16 @@ sal_uInt16 GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPat } else if( aFilterName.equalsIgnoreAsciiCase( IMP_XBM ) ) { - if( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); if( !ImportXBM( rIStream, rGraphic ) ) nStatus = GRFILTER_FILTERERROR; } else if( aFilterName.equalsIgnoreAsciiCase( IMP_XPM ) ) { - if( rGraphic.GetContext() == reinterpret_cast<GraphicReader*>(1) ) - rGraphic.SetContext( nullptr ); + if( rGraphic.IsDummyContext()) + rGraphic.SetDummyContext( false ); if( !ImportXPM( rIStream, rGraphic ) ) nStatus = GRFILTER_FILTERERROR; diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx index 2c14d8f..b46efa0 100644 --- a/vcl/source/gdi/graph.cxx +++ b/vcl/source/gdi/graph.cxx @@ -506,6 +506,16 @@ void Graphic::SetContext( GraphicReader* pReader ) mpImpGraphic->ImplSetContext( pReader ); } +void Graphic::SetDummyContext( bool value ) +{ + mpImpGraphic->ImplSetDummyContext( value ); +} + +bool Graphic::IsDummyContext() +{ + return mpImpGraphic->ImplIsDummyContext(); +} + bool Graphic::SwapOut() { ImplTestRefCount(); diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx index 21d2119..a8f1d0c 100644 --- a/vcl/source/gdi/impgraph.cxx +++ b/vcl/source/gdi/impgraph.cxx @@ -98,7 +98,8 @@ ImpGraphic::ImpGraphic() : mnSizeBytes ( 0UL ), mnRefCount ( 1UL ), mbSwapOut ( false ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( false ) { } @@ -111,7 +112,8 @@ ImpGraphic::ImpGraphic( const ImpGraphic& rImpGraphic ) : mnSizeBytes ( rImpGraphic.mnSizeBytes ), mnRefCount ( 1UL ), mbSwapOut ( rImpGraphic.mbSwapOut ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( rImpGraphic.mbDummyContext ) { if( mpSwapFile ) mpSwapFile->nRefCount++; @@ -142,7 +144,8 @@ ImpGraphic::ImpGraphic( const Bitmap& rBitmap ) : mnSizeBytes ( 0UL ), mnRefCount ( 1UL ), mbSwapOut ( false ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( false ) { } @@ -156,7 +159,8 @@ ImpGraphic::ImpGraphic( const BitmapEx& rBitmapEx ) : mnSizeBytes ( 0UL ), mnRefCount ( 1UL ), mbSwapOut ( false ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( false ) { } @@ -170,6 +174,7 @@ ImpGraphic::ImpGraphic(const SvgDataPtr& rSvgDataPtr) mnRefCount( 1UL ), mbSwapOut( false ), mbSwapUnderway( false ), + mbDummyContext ( false ), maSvgData(rSvgDataPtr) { } @@ -184,7 +189,8 @@ ImpGraphic::ImpGraphic( const Animation& rAnimation ) : mnSizeBytes ( 0UL ), mnRefCount ( 1UL ), mbSwapOut ( false ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( false ) { } @@ -198,16 +204,15 @@ ImpGraphic::ImpGraphic( const GDIMetaFile& rMtf ) : mnSizeBytes ( 0UL ), mnRefCount ( 1UL ), mbSwapOut ( false ), - mbSwapUnderway ( false ) + mbSwapUnderway ( false ), + mbDummyContext ( false ) { } ImpGraphic::~ImpGraphic() { ImplClear(); - - if( reinterpret_cast<sal_uLong>(mpContext) > 1UL ) - delete mpContext; + delete mpContext; } ImpGraphic& ImpGraphic::operator=( const ImpGraphic& rImpGraphic ) @@ -939,6 +944,7 @@ sal_uLong ImpGraphic::ImplGetAnimationLoopCount() const void ImpGraphic::ImplSetContext( GraphicReader* pReader ) { mpContext = pReader; + mbDummyContext = false; } bool ImpGraphic::ImplReadEmbedded( SvStream& rIStm )
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits