[Libreoffice-commits] core.git: vcl/source

Caolán McNamara caolanm at redhat.com
Mon Nov 3 12:41:52 PST 2014


 vcl/source/outdev/map.cxx    |   19 ++++++++-----------
 vcl/source/outdev/outdev.cxx |   15 +++++----------
 vcl/source/outdev/text.cxx   |    8 ++++----
 3 files changed, 17 insertions(+), 25 deletions(-)

New commits:
commit 188b0d899c277a2ac2b0c5f52d992db2b45a882d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Nov 3 17:16:13 2014 +0000

    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

diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx
index c646f8a..8e95882 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 546f36d..3c9e519 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 90cd4a4..2dd7859 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;


More information about the Libreoffice-commits mailing list