diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-11-03 17:16:13 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-11-03 20:41:07 +0000 |
commit | 188b0d899c277a2ac2b0c5f52d992db2b45a882d (patch) | |
tree | bc25d588b5930669da49284f8f80ce0a63e923ff /vcl | |
parent | 8e399602ea7aa11a81d704ff6ce8e660df4205b9 (diff) |
coverity#1209395 Dereference after null check
since
commit 808d273db098e2269e53813595a6bfc7b160e28e
Date: Fri Apr 25 11:56:54 2014 +1000
Remove ImpInitOutDevData and ImplDeInitOutDevData in OutputDevice
All these do is some very, very basic initialization. There is no need
to lazy load the structure, it should be initialized when OutputDevice
is created in the constructor and deinitialized in the destructor.
mpOutDevData is never NULL
Change-Id: Ie08f7520e8c09b57e056c086bba3089abe2486fa
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/outdev/map.cxx | 19 | ||||
-rw-r--r-- | vcl/source/outdev/outdev.cxx | 15 | ||||
-rw-r--r-- | vcl/source/outdev/text.cxx | 8 |
3 files changed, 17 insertions, 25 deletions
diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx index c646f8a7b0d1..8e95882b8e6f 100644 --- a/vcl/source/outdev/map.cxx +++ b/vcl/source/outdev/map.cxx @@ -354,19 +354,16 @@ inline void ImplCalcMapResolution( const MapMode& rMapMode, // #i75163# void OutputDevice::ImplInvalidateViewTransform() { - if(mpOutDevData) + if(mpOutDevData->mpViewTransform) { - if(mpOutDevData->mpViewTransform) - { - delete mpOutDevData->mpViewTransform; - mpOutDevData->mpViewTransform = NULL; - } + delete mpOutDevData->mpViewTransform; + mpOutDevData->mpViewTransform = NULL; + } - if(mpOutDevData->mpInverseViewTransform) - { - delete mpOutDevData->mpInverseViewTransform; - mpOutDevData->mpInverseViewTransform = NULL; - } + if(mpOutDevData->mpInverseViewTransform) + { + delete mpOutDevData->mpInverseViewTransform; + mpOutDevData->mpInverseViewTransform = NULL; } } diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx index 546f36d3da71..3c9e519cc71d 100644 --- a/vcl/source/outdev/outdev.cxx +++ b/vcl/source/outdev/outdev.cxx @@ -96,7 +96,6 @@ OutputDevice::OutputDevice() : mpGetDevFontList = NULL; mpGetDevSizeList = NULL; mpOutDevStateStack = new boost::ptr_deque<OutDevState>(); - mpOutDevData = NULL; mpPDFWriter = NULL; mpAlphaVDev = NULL; mpExtOutDevData = NULL; @@ -191,16 +190,12 @@ OutputDevice::~OutputDevice() mpUnoGraphicsList = NULL; } - if ( mpOutDevData ) - { - if ( mpOutDevData->mpRotateDev ) - delete mpOutDevData->mpRotateDev; + delete mpOutDevData->mpRotateDev; - // #i75163# - ImplInvalidateViewTransform(); + // #i75163# + ImplInvalidateViewTransform(); - delete mpOutDevData; - } + delete mpOutDevData; // for some reason, we haven't removed state from the stack properly if ( !mpOutDevStateStack->empty() ) @@ -783,7 +778,7 @@ bool OutputDevice::HasMirroredGraphics() const bool OutputDevice::ImplIsRecordLayout() const { - return mpOutDevData && mpOutDevData->mpRecordLayout; + return mpOutDevData->mpRecordLayout; } // EPS public function diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index 90cd4a4311b6..2dd7859f2f7c 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -233,7 +233,7 @@ bool OutputDevice::ImplDrawRotateText( SalLayout& rSalLayout ) } // cache virtual device for rotation - if ( !mpOutDevData->mpRotateDev ) + if (!mpOutDevData->mpRotateDev) mpOutDevData->mpRotateDev = new VirtualDevice( *this, 1 ); VirtualDevice* pVDev = mpOutDevData->mpRotateDev; @@ -849,7 +849,7 @@ void OutputDevice::DrawText( const Point& rStartPt, const OUString& rStr, } - if( mpOutDevData && mpOutDevData->mpRecordLayout ) + if (mpOutDevData->mpRecordLayout) { pVector = &mpOutDevData->mpRecordLayout->m_aUnicodeBoundRects; pDisplayText = &mpOutDevData->mpRecordLayout->m_aDisplayText; @@ -867,7 +867,7 @@ void OutputDevice::DrawText( const Point& rStartPt, const OUString& rStr, vcl::Region aClip( GetClipRegion() ); if( meOutDevType == OUTDEV_WINDOW ) aClip.Intersect( Rectangle( Point(), GetOutputSize() ) ); - if( mpOutDevData && mpOutDevData->mpRecordLayout ) + if (mpOutDevData->mpRecordLayout) { mpOutDevData->mpRecordLayout->m_aLineIndices.push_back( mpOutDevData->mpRecordLayout->m_aDisplayText.getLength() ); aClip.Intersect( mpOutDevData->maRecordRect ); @@ -1805,7 +1805,7 @@ void OutputDevice::DrawText( const Rectangle& rRect, const OUString& rOrigStr, s MetricVector* pVector, OUString* pDisplayText, ::vcl::ITextLayout* _pTextLayout ) { - if( mpOutDevData && mpOutDevData->mpRecordLayout ) + if (mpOutDevData->mpRecordLayout) { pVector = &mpOutDevData->mpRecordLayout->m_aUnicodeBoundRects; pDisplayText = &mpOutDevData->mpRecordLayout->m_aDisplayText; |