summaryrefslogtreecommitdiff
path: root/vcl/source/image/Image.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2016-11-03 22:46:59 +0100
committerTomaž Vajngerl <quikee@gmail.com>2016-11-04 08:15:56 +0000
commitf4637c07c9ac87c2ad4b687263dfea50b5d4e0ef (patch)
tree80d321e2b92829e42448a65b14dcc08396288c24 /vcl/source/image/Image.cxx
parent3e610f8496a0b6ef126426b807e0af366a98b8f3 (diff)
convert Image manual refcounting with std::shader_ptr
Change-Id: I9a086d4a5d2f1b0d1afa3afd155eadcb2ae62ab5 Reviewed-on: https://gerrit.libreoffice.org/30543 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source/image/Image.cxx')
-rw-r--r--vcl/source/image/Image.cxx83
1 files changed, 27 insertions, 56 deletions
diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx
index 2aab6a890f28..bc767ce9c497 100644
--- a/vcl/source/image/Image.cxx
+++ b/vcl/source/image/Image.cxx
@@ -40,15 +40,12 @@
#include <rtl/strbuf.hxx>
#endif
-Image::Image() :
- mpImplData( nullptr )
+Image::Image()
{
}
-Image::Image( const ResId& rResId ) :
- mpImplData( nullptr )
+Image::Image( const ResId& rResId )
{
-
rResId.SetRT( RSC_IMAGE );
ResMgr* pResMgr = rResId.GetResMgr();
@@ -70,78 +67,60 @@ Image::Image( const ResId& rResId ) :
}
}
-Image::Image( const Image& rImage ) :
- mpImplData( rImage.mpImplData )
+Image::Image(const Image& rImage)
+ : mpImplData(rImage.mpImplData)
{
-
- if( mpImplData )
- ++mpImplData->mnRefCount;
}
-Image::Image( const BitmapEx& rBitmapEx ) :
- mpImplData( nullptr )
+Image::Image(const BitmapEx& rBitmapEx)
{
-
- ImplInit( rBitmapEx );
+ ImplInit(rBitmapEx);
}
-Image::Image( const Bitmap& rBitmap ) :
- mpImplData( nullptr )
+Image::Image(const Bitmap& rBitmap)
{
-
- ImplInit( rBitmap );
+ ImplInit(rBitmap);
}
-Image::Image( const Bitmap& rBitmap, const Bitmap& rMaskBitmap ) :
- mpImplData( nullptr )
+Image::Image(const Bitmap& rBitmap, const Bitmap& rMaskBitmap)
{
-
- const BitmapEx aBmpEx( rBitmap, rMaskBitmap );
-
- ImplInit( aBmpEx );
+ const BitmapEx aBitmapEx(rBitmap, rMaskBitmap);
+ ImplInit(aBitmapEx);
}
-Image::Image( const Bitmap& rBitmap, const Color& rColor ) :
- mpImplData( nullptr )
+Image::Image(const Bitmap& rBitmap, const Color& rColor)
{
-
- const BitmapEx aBmpEx( rBitmap, rColor );
-
- ImplInit( aBmpEx );
+ const BitmapEx aBitmapEx(rBitmap, rColor);
+ ImplInit(aBitmapEx);
}
-Image::Image( const css::uno::Reference< css::graphic::XGraphic >& rxGraphic ) :
- mpImplData( nullptr )
+Image::Image(const css::uno::Reference< css::graphic::XGraphic >& rxGraphic)
{
-
- const Graphic aGraphic( rxGraphic );
- ImplInit( aGraphic.GetBitmapEx() );
+ const Graphic aGraphic(rxGraphic);
+ ImplInit(aGraphic.GetBitmapEx());
}
-Image::Image( const OUString &rFileUrl ) :
- mpImplData( nullptr )
+Image::Image(const OUString & rFileUrl)
{
- OUString aTmp;
- osl::FileBase::getSystemPathFromFileURL( rFileUrl, aTmp );
+ OUString aPath;
+ osl::FileBase::getSystemPathFromFileURL(rFileUrl, aPath);
Graphic aGraphic;
- const OUString aFilterName( IMP_PNG );
- if( GRFILTER_OK == GraphicFilter::LoadGraphic( aTmp, aFilterName, aGraphic ) )
+ const OUString aFilterName(IMP_PNG);
+ if (GRFILTER_OK == GraphicFilter::LoadGraphic(aPath, aFilterName, aGraphic))
{
- ImplInit( aGraphic.GetBitmapEx() );
+ ImplInit(aGraphic.GetBitmapEx());
}
}
Image::~Image()
{
- if( mpImplData && ( 0 == --mpImplData->mnRefCount ) )
- delete mpImplData;
}
void Image::ImplInit(const BitmapEx& rBitmapEx)
{
if (!rBitmapEx.IsEmpty())
{
- mpImplData = new ImplImage;
+ mpImplData.reset(new ImplImage);
mpImplData->mpBitmapEx.reset(new BitmapEx(rBitmapEx));
}
}
@@ -177,21 +156,13 @@ css::uno::Reference< css::graphic::XGraphic > Image::GetXGraphic() const
return aGraphic.GetXGraphic();
}
-Image& Image::operator=( const Image& rImage )
+Image& Image::operator=(const Image& rImage)
{
-
- if( rImage.mpImplData )
- ++rImage.mpImplData->mnRefCount;
-
- if( mpImplData && ( 0 == --mpImplData->mnRefCount ) )
- delete mpImplData;
-
mpImplData = rImage.mpImplData;
-
return *this;
}
-Image& Image::operator=( Image&& rImage )
+Image& Image::operator=(Image&& rImage)
{
std::swap(mpImplData, rImage.mpImplData);
return *this;
@@ -213,7 +184,7 @@ bool Image::operator==(const Image& rImage) const
void Image::Draw(OutputDevice* pOutDev, const Point& rPos, DrawImageFlags nStyle, const Size* pSize)
{
- if (mpImplData == nullptr || !mpImplData->mpBitmapEx ||
+ if (!mpImplData || !mpImplData->mpBitmapEx ||
(!pOutDev->IsDeviceOutputNecessary() && pOutDev->GetConnectMetaFile() == nullptr))
return;