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

Caolán McNamara caolanm at redhat.com
Fri Jan 20 16:40:06 UTC 2017


 svtools/source/graphic/provider.cxx |    3 +--
 vcl/inc/image.h                     |   10 ++--------
 vcl/source/image/Image.cxx          |   26 ++++++++++++--------------
 vcl/source/image/ImplImage.cxx      |    8 ++------
 4 files changed, 17 insertions(+), 30 deletions(-)

New commits:
commit d3b94aae205597fdd369989d76a60420ae9b8ab1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jan 20 16:36:10 2017 +0000

    every ImplImage has a BitmapEx
    
    Change-Id: I02561cfdff57eab7684d68c98ba2b3d83847c9c5

diff --git a/vcl/inc/image.h b/vcl/inc/image.h
index 72a7f32..873fc98 100644
--- a/vcl/inc/image.h
+++ b/vcl/inc/image.h
@@ -28,16 +28,10 @@
 struct ImplImage
 {
     BitmapChecksum maBitmapChecksum;
-
-    std::unique_ptr<BitmapEx> mpBitmapEx;
+    BitmapEx maBitmapEx;
     BitmapEx maDisabledBitmapEx;
 
-    ImplImage();
-    ~ImplImage();
-
-private:
-    ImplImage(const ImplImage&) = delete;
-    void operator=(const ImplImage&) = delete;
+    ImplImage(const BitmapEx& rBitmapEx);
 };
 
 #endif // INCLUDED_VCL_INC_IMAGE_H
diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx
index bc663fb..d873d3e 100644
--- a/vcl/source/image/Image.cxx
+++ b/vcl/source/image/Image.cxx
@@ -82,8 +82,7 @@ void Image::ImplInit(const BitmapEx& rBitmapEx)
 {
     if (!rBitmapEx.IsEmpty())
     {
-        mpImplData.reset(new ImplImage);
-        mpImplData->mpBitmapEx.reset(new BitmapEx(rBitmapEx));
+        mpImplData.reset(new ImplImage(rBitmapEx));
     }
 }
 
@@ -91,9 +90,9 @@ Size Image::GetSizePixel() const
 {
     Size aRet;
 
-    if (mpImplData && mpImplData->mpBitmapEx)
+    if (mpImplData)
     {
-        aRet = mpImplData->mpBitmapEx->GetSizePixel();
+        aRet = mpImplData->maBitmapEx.GetSizePixel();
     }
 
     return aRet;
@@ -103,9 +102,9 @@ BitmapEx Image::GetBitmapEx() const
 {
     BitmapEx aRet;
 
-    if (mpImplData && mpImplData->mpBitmapEx)
+    if (mpImplData)
     {
-        aRet = BitmapEx(*mpImplData->mpBitmapEx);
+        aRet = mpImplData->maBitmapEx;
     }
 
     return aRet;
@@ -127,29 +126,28 @@ bool Image::operator==(const Image& rImage) const
     else if (!rImage.mpImplData || !mpImplData)
         bRet = false;
     else
-        bRet = *rImage.mpImplData->mpBitmapEx == *mpImplData->mpBitmapEx;
+        bRet = rImage.mpImplData->maBitmapEx == mpImplData->maBitmapEx;
 
     return bRet;
 }
 
 void Image::Draw(OutputDevice* pOutDev, const Point& rPos, DrawImageFlags nStyle, const Size* pSize)
 {
-    if (!mpImplData || !mpImplData->mpBitmapEx ||
-        (!pOutDev->IsDeviceOutputNecessary() && pOutDev->GetConnectMetaFile() == nullptr))
+    if (!mpImplData || (!pOutDev->IsDeviceOutputNecessary() && pOutDev->GetConnectMetaFile() == nullptr))
         return;
 
     const Point aSrcPos(0, 0);
-    Size aBitmapSizePixel = mpImplData->mpBitmapEx->GetSizePixel();
+    Size aBitmapSizePixel = mpImplData->maBitmapEx.GetSizePixel();
 
     Size aOutSize = pSize ? *pSize : pOutDev->PixelToLogic(aBitmapSizePixel);
 
     if (nStyle & DrawImageFlags::Disable)
     {
-        BitmapChecksum aChecksum = mpImplData->mpBitmapEx->GetChecksum();
+        BitmapChecksum aChecksum = mpImplData->maBitmapEx.GetChecksum();
         if (mpImplData->maBitmapChecksum != aChecksum)
         {
             mpImplData->maBitmapChecksum = aChecksum;
-            mpImplData->maDisabledBitmapEx = BitmapProcessor::createDisabledImage(*mpImplData->mpBitmapEx);
+            mpImplData->maDisabledBitmapEx = BitmapProcessor::createDisabledImage(mpImplData->maBitmapEx);
         }
         pOutDev->DrawBitmapEx(rPos, aOutSize, aSrcPos, aBitmapSizePixel, mpImplData->maDisabledBitmapEx);
     }
@@ -158,7 +156,7 @@ void Image::Draw(OutputDevice* pOutDev, const Point& rPos, DrawImageFlags nStyle
         if (nStyle & (DrawImageFlags::ColorTransform | DrawImageFlags::Highlight |
                       DrawImageFlags::Deactive | DrawImageFlags::SemiTransparent))
         {
-            BitmapEx aTempBitmapEx(*mpImplData->mpBitmapEx);
+            BitmapEx aTempBitmapEx(mpImplData->maBitmapEx);
 
             if (nStyle & (DrawImageFlags::Highlight | DrawImageFlags::Deactive))
             {
@@ -190,7 +188,7 @@ void Image::Draw(OutputDevice* pOutDev, const Point& rPos, DrawImageFlags nStyle
         }
         else
         {
-            pOutDev->DrawBitmapEx(rPos, aOutSize, aSrcPos, mpImplData->mpBitmapEx->GetSizePixel(), *mpImplData->mpBitmapEx);
+            pOutDev->DrawBitmapEx(rPos, aOutSize, aSrcPos, mpImplData->maBitmapEx.GetSizePixel(), mpImplData->maBitmapEx);
         }
     }
 }
diff --git a/vcl/source/image/ImplImage.cxx b/vcl/source/image/ImplImage.cxx
index ad43120..82a2099 100644
--- a/vcl/source/image/ImplImage.cxx
+++ b/vcl/source/image/ImplImage.cxx
@@ -29,15 +29,11 @@
 #include <image.h>
 #include <memory>
 
-ImplImage::ImplImage()
+ImplImage::ImplImage(const BitmapEx &rBitmapEx)
     : maBitmapChecksum(0)
-    , mpBitmapEx()
+    , maBitmapEx(rBitmapEx)
     , maDisabledBitmapEx()
 {
 }
 
-ImplImage::~ImplImage()
-{
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 55ff58a4084acbdd031ae1d79f0b740e91b15fd0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jan 20 16:09:28 2017 +0000

    don't need an intermediate Image
    
    Change-Id: I2700c30000b440a0646d43bb5712fe683747b34b

diff --git a/svtools/source/graphic/provider.cxx b/svtools/source/graphic/provider.cxx
index f4631b79..a770906 100644
--- a/svtools/source/graphic/provider.cxx
+++ b/svtools/source/graphic/provider.cxx
@@ -184,8 +184,7 @@ uno::Reference< ::graphic::XGraphic > GraphicProvider::implLoadRepositoryImage(
         BitmapEx aBitmap;
         if ( vcl::ImageRepository::loadImage( sPathName, aBitmap, false ) )
         {
-            Image aImage( aBitmap );
-            xRet = aImage.GetXGraphic();
+            xRet = Graphic(aBitmap).GetXGraphic();
         }
     }
     return xRet;


More information about the Libreoffice-commits mailing list