summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-11-03 17:16:13 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-11-03 20:41:07 +0000
commit188b0d899c277a2ac2b0c5f52d992db2b45a882d (patch)
treebc25d588b5930669da49284f8f80ce0a63e923ff /vcl
parent8e399602ea7aa11a81d704ff6ce8e660df4205b9 (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.cxx19
-rw-r--r--vcl/source/outdev/outdev.cxx15
-rw-r--r--vcl/source/outdev/text.cxx8
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;