[Libreoffice-commits] core.git: 3 commits - desktop/source include/o3tl include/vcl vcl/headless vcl/inc vcl/opengl vcl/source
Michael Stahl
mstahl at redhat.com
Tue Jan 26 08:55:22 PST 2016
desktop/source/lib/init.cxx | 18 +----------------
include/o3tl/make_shared.hxx | 33 ++++++++++++++++++++++++++++++++
include/vcl/virdev.hxx | 8 +++----
vcl/headless/svpvd.cxx | 6 ++---
vcl/inc/headless/svpvd.hxx | 2 -
vcl/inc/opengl/salbmp.hxx | 4 +--
vcl/inc/salvd.hxx | 5 ++--
vcl/opengl/salbmp.cxx | 44 ++++++++++++++++++++++---------------------
vcl/opengl/scale.cxx | 2 -
vcl/source/gdi/virdev.cxx | 11 ++++------
10 files changed, 77 insertions(+), 56 deletions(-)
New commits:
commit bde86f8074842585e2964b3157e97672fb25e63d
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jan 26 14:12:21 2016 +0100
vcl: replace boost::shared_array with std::shared_ptr
Add o3tl::make_shared_array() to create the shared_ptr with the right
deleter.
The main difference then is that shared_array has operator[], but this
code didn't even use it.
Change-Id: I500ffc2f92b99c2a3924c0cdcdaa101956b69add
diff --git a/include/o3tl/make_shared.hxx b/include/o3tl/make_shared.hxx
new file mode 100644
index 0000000..d42783c
--- /dev/null
+++ b/include/o3tl/make_shared.hxx
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_O3TL_MAKE_SHARED_HXX
+#define INCLUDED_O3TL_MAKE_SHARED_HXX
+
+#include <memory>
+#include <type_traits>
+
+namespace o3tl {
+
+/** Allocate an array stored in a shared_ptr, calling operator delete[].
+ Note that this is only allowed for arithmetic types because shared_ptr
+ implicitly converts to sub-types.
+ */
+template<typename T>
+std::shared_ptr<T> make_shared_array(size_t const size)
+{
+ static_assert(std::is_arithmetic<T>::value, "only arrays of arithmetic types allowed");
+ return std::shared_ptr<T>(new T[size], std::default_delete<T[]>());
+}
+
+} // namespace o3tl
+
+#endif // INCLUDED_O3TL_MAKE_SHARED_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/opengl/salbmp.hxx b/vcl/inc/opengl/salbmp.hxx
index f5a618a..98e09b3 100644
--- a/vcl/inc/opengl/salbmp.hxx
+++ b/vcl/inc/opengl/salbmp.hxx
@@ -29,7 +29,7 @@
#include <salbmp.hxx>
#include <deque>
-#include <boost/shared_array.hpp>
+#include <memory>
struct BitmapBuffer;
class BitmapPalette;
@@ -40,7 +40,7 @@ private:
OpenGLTexture maTexture;
bool mbDirtyTexture;
BitmapPalette maPalette;
- boost::shared_array<sal_uInt8> maUserBuffer;
+ std::shared_ptr<sal_uInt8> mpUserBuffer;
sal_uInt16 mnBits;
sal_uInt16 mnBytesPerRow;
int mnWidth;
diff --git a/vcl/opengl/salbmp.cxx b/vcl/opengl/salbmp.cxx
index e8cbc31..703aedc 100644
--- a/vcl/opengl/salbmp.cxx
+++ b/vcl/opengl/salbmp.cxx
@@ -30,6 +30,8 @@
#include "vcleventlisteners.hxx"
#include "vcl/lazydelete.hxx"
+#include <o3tl/make_shared.hxx>
+
#include "opengl/zone.hxx"
#include "opengl/program.hxx"
#include "opengl/salbmp.hxx"
@@ -202,12 +204,12 @@ bool OpenGLSalBitmap::Create( const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount
mbDirtyTexture = false;
// be careful here, we are share & reference-count the
- // maUserBuffer, BUT this Create() is called from
+ // mpUserBuffer, BUT this Create() is called from
// Bitmap::ImplMakeUnique().
// Consequently, there might be cases when this needs to be made
// unique later (when we don't do that right away here), like when
// using the BitmapWriteAccess.
- maUserBuffer = rSourceBitmap.maUserBuffer;
+ mpUserBuffer = rSourceBitmap.mpUserBuffer;
return true;
}
@@ -238,7 +240,7 @@ void OpenGLSalBitmap::Destroy()
VCL_GL_INFO("Destroy OpenGLSalBitmap texture:" << maTexture.Id());
maPendingOps.clear();
maTexture = OpenGLTexture();
- maUserBuffer.reset();
+ mpUserBuffer.reset();
}
bool OpenGLSalBitmap::AllocateUserData()
@@ -256,7 +258,7 @@ bool OpenGLSalBitmap::AllocateUserData()
{
try
{
- maUserBuffer.reset( new sal_uInt8[static_cast<sal_uInt32>(mnBytesPerRow) * mnHeight] );
+ mpUserBuffer = o3tl::make_shared_array<sal_uInt8>(static_cast<sal_uInt32>(mnBytesPerRow) * mnHeight);
alloc = true;
}
catch (const std::bad_alloc &) {}
@@ -264,18 +266,18 @@ bool OpenGLSalBitmap::AllocateUserData()
if (!alloc)
{
SAL_WARN("vcl.opengl", "bad alloc " << mnBytesPerRow << "x" << mnHeight);
- maUserBuffer.reset( static_cast<sal_uInt8*>(nullptr) );
+ mpUserBuffer.reset();
mnBytesPerRow = 0;
}
#ifdef DBG_UTIL
else
{
for (size_t i = 0; i < size_t(mnBytesPerRow * mnHeight); i++)
- maUserBuffer.get()[i] = (i & 0xFF);
+ mpUserBuffer.get()[i] = (i & 0xFF);
}
#endif
- return maUserBuffer.get() != nullptr;
+ return mpUserBuffer.get() != nullptr;
}
namespace {
@@ -436,19 +438,19 @@ GLuint OpenGLSalBitmap::CreateTexture()
sal_uInt8* pData( nullptr );
bool bAllocated( false );
- if( maUserBuffer.get() != nullptr )
+ if (mpUserBuffer.get() != nullptr)
{
if( mnBits == 16 || mnBits == 24 || mnBits == 32 )
{
// no conversion needed for truecolor
- pData = maUserBuffer.get();
+ pData = mpUserBuffer.get();
determineTextureFormat(mnBits, nFormat, nType);
}
else if( mnBits == 8 && maPalette.IsGreyPalette() )
{
// no conversion needed for grayscale
- pData = maUserBuffer.get();
+ pData = mpUserBuffer.get();
nFormat = GL_LUMINANCE;
nType = GL_UNSIGNED_BYTE;
}
@@ -463,7 +465,7 @@ GLuint OpenGLSalBitmap::CreateTexture()
std::unique_ptr<ImplPixelFormat> pSrcFormat(ImplPixelFormat::GetFormat(mnBits, maPalette));
- sal_uInt8* pSrcData = maUserBuffer.get();
+ sal_uInt8* pSrcData = mpUserBuffer.get();
sal_uInt8* pDstData = pData;
sal_uInt32 nY = mnBufHeight;
@@ -516,7 +518,7 @@ GLuint OpenGLSalBitmap::CreateTexture()
bool OpenGLSalBitmap::ReadTexture()
{
- sal_uInt8* pData = maUserBuffer.get();
+ sal_uInt8* pData = mpUserBuffer.get();
GLenum nFormat = GL_RGBA;
GLenum nType = GL_UNSIGNED_BYTE;
@@ -707,7 +709,7 @@ BitmapBuffer* OpenGLSalBitmap::AcquireBuffer( BitmapAccessMode nMode )
if( nMode != BITMAP_INFO_ACCESS )
{
- if( !maUserBuffer.get() )
+ if (!mpUserBuffer.get())
{
if( !AllocateUserData() )
return nullptr;
@@ -723,14 +725,14 @@ BitmapBuffer* OpenGLSalBitmap::AcquireBuffer( BitmapAccessMode nMode )
}
}
- // maUserBuffer must be unique when we are doing the write access
- if (nMode == BITMAP_WRITE_ACCESS && maUserBuffer && !maUserBuffer.unique())
+ // mpUserBuffer must be unique when we are doing the write access
+ if (nMode == BITMAP_WRITE_ACCESS && mpUserBuffer && !mpUserBuffer.unique())
{
- boost::shared_array<sal_uInt8> aBuffer(maUserBuffer);
+ std::shared_ptr<sal_uInt8> aBuffer(mpUserBuffer);
- maUserBuffer.reset();
+ mpUserBuffer.reset();
AllocateUserData();
- memcpy(maUserBuffer.get(), aBuffer.get(), static_cast<sal_uInt32>(mnBytesPerRow) * mnHeight);
+ memcpy(mpUserBuffer.get(), aBuffer.get(), static_cast<sal_uInt32>(mnBytesPerRow) * mnHeight);
}
BitmapBuffer* pBuffer = new BitmapBuffer;
@@ -738,7 +740,7 @@ BitmapBuffer* OpenGLSalBitmap::AcquireBuffer( BitmapAccessMode nMode )
pBuffer->mnHeight = mnHeight;
pBuffer->maPalette = maPalette;
pBuffer->mnScanlineSize = mnBytesPerRow;
- pBuffer->mpBits = maUserBuffer.get();
+ pBuffer->mpBits = mpUserBuffer.get();
pBuffer->mnBitCount = mnBits;
switch (mnBits)
@@ -847,7 +849,7 @@ bool OpenGLSalBitmap::GetSystemData( BitmapSystemData& /*rData*/ )
if( pBuffer == NULL )
return false;
- if( !maUserBuffer.get() )
+ if (!mpUserBuffer.get())
{
if( !AllocateUserData() || !ReadTexture() )
{
@@ -858,7 +860,7 @@ bool OpenGLSalBitmap::GetSystemData( BitmapSystemData& /*rData*/ )
// TODO Might be more efficient to add a static method to SalBitmap
// to get system data from a buffer
- memcpy( pBuffer->mpBits, maUserBuffer.get(), mnBytesPerRow * mnHeight );
+ memcpy( pBuffer->mpBits, mpUserBuffer.get(), mnBytesPerRow * mnHeight );
rBitmap.ReleaseBuffer( pBuffer, false );
return rBitmap.GetSystemData( rData );
diff --git a/vcl/opengl/scale.cxx b/vcl/opengl/scale.cxx
index 80bbdd6..9ba7432 100644
--- a/vcl/opengl/scale.cxx
+++ b/vcl/opengl/scale.cxx
@@ -265,7 +265,7 @@ bool OpenGLSalBitmap::ImplScale( const double& rScaleX, const double& rScaleY, B
{
VCL_GL_INFO( "::ImplScale" );
- maUserBuffer.reset();
+ mpUserBuffer.reset();
OpenGLVCLContextZone aContextZone;
rtl::Reference<OpenGLContext> xContext = OpenGLContext::getVCLContext();
commit eb63ac518167601896afe0c336e2562efa0f43f2
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jan 26 12:54:19 2016 +0100
vcl: actually that shared_array was a scam
The only things passed as buffers there were null pointers and
shared_arrays that had the deletion explicitly disabled with a struct
NoDelete, so it's sufficient to just pass a pointer.
Change-Id: I68d618782aa654242048516d2e910b8136b16e2d
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 53d84f7..88b5d1f 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -101,17 +101,6 @@ typedef struct
const char *filterName;
} ExtensionMap;
-// We need a shared_ptr for passing into the BitmapDevice (via
-// VirtualDevice.SetOutputSizePixelScaleOffsetAndBuffer which goes via the
-// SvpVirtualDevice, ending up in the cairo surface. However as we're
-// given the array externally we can't delete it, and hence need to override
-// shared_ptr's default of deleting its pointer.
-template<typename T>
-struct NoDelete
-{
- void operator()(T* /* p */) {}
-};
-
static const ExtensionMap aWriterExtensionMap[] =
{
{ "doc", "MS Word 97" },
@@ -924,11 +913,9 @@ void doc_paintTile (LibreOfficeKitDocument* pThis,
pDevice->SetBackground(Wallpaper(Color(COL_TRANSPARENT)));
#endif
- std::shared_ptr<sal_uInt8> aBuffer( pBuffer, NoDelete<sal_uInt8>() );
-
pDevice->SetOutputSizePixelScaleOffsetAndBuffer(
Size(nCanvasWidth, nCanvasHeight), Fraction(1.0), Point(),
- aBuffer);
+ pBuffer);
pDoc->paintTile(*pDevice.get(), nCanvasWidth, nCanvasHeight,
nTilePosX, nTilePosY, nTileWidth, nTileHeight);
@@ -1569,12 +1556,11 @@ unsigned char* doc_renderFont(LibreOfficeKitDocument* /*pThis*/,
unsigned char* pBuffer = static_cast<unsigned char*>(malloc(4 * nFontWidth * nFontHeight));
memset(pBuffer, 0, nFontWidth * nFontHeight * 4);
- std::shared_ptr<sal_uInt8> aBuffer(pBuffer, NoDelete<sal_uInt8>());
aDevice->SetBackground(Wallpaper(COL_TRANSPARENT));
aDevice->SetOutputSizePixelScaleOffsetAndBuffer(
Size(nFontWidth, nFontHeight), Fraction(1.0), Point(),
- aBuffer);
+ pBuffer);
aDevice->DrawText(Point(0,0), aFontName);
return pBuffer;
diff --git a/include/vcl/virdev.hxx b/include/vcl/virdev.hxx
index e56a9a1..b9b5bba 100644
--- a/include/vcl/virdev.hxx
+++ b/include/vcl/virdev.hxx
@@ -24,7 +24,6 @@
#include <vcl/salgtype.hxx>
#include <vcl/outdev.hxx>
-#include <memory>
class SalVirtualDevice;
struct SystemGraphicsData;
@@ -47,9 +46,9 @@ private:
SAL_DLLPRIVATE void ImplInitVirDev( const OutputDevice* pOutDev, long nDX, long nDY, DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr );
SAL_DLLPRIVATE bool InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const std::shared_ptr<sal_uInt8> &pBuffer );
+ sal_uInt8* pBuffer );
SAL_DLLPRIVATE bool ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const std::shared_ptr<sal_uInt8> &pBuffer );
+ sal_uInt8* pBuffer );
VirtualDevice (const VirtualDevice &) = delete;
VirtualDevice & operator= (const VirtualDevice &) = delete;
@@ -127,7 +126,7 @@ public:
bool SetOutputSizePixelScaleOffsetAndBuffer( const Size& rNewSize,
const Fraction& rScale,
const Point& rNewOffset,
- const std::shared_ptr<sal_uInt8> &pBuffer );
+ sal_uInt8* pBuffer);
bool SetOutputSize( const Size& rNewSize, bool bErase = true )
{ return SetOutputSizePixel( LogicToPixel( rNewSize ), bErase ); }
diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx
index 1711f39..7840aec 100644
--- a/vcl/headless/svpvd.cxx
+++ b/vcl/headless/svpvd.cxx
@@ -51,11 +51,11 @@ void SvpSalVirtualDevice::ReleaseGraphics( SalGraphics* pGraphics )
bool SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
{
- return SetSizeUsingBuffer(nNewDX, nNewDY, std::shared_ptr<sal_uInt8>());
+ return SetSizeUsingBuffer(nNewDX, nNewDY, nullptr);
}
bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const std::shared_ptr<sal_uInt8> &pBuffer )
+ sal_uInt8 *const pBuffer)
{
B2IVector aDevSize( nNewDX, nNewDY );
if( aDevSize.getX() == 0 )
@@ -75,7 +75,7 @@ bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY,
else
{
m_pSurface = pBuffer ?
- cairo_image_surface_create_for_data(pBuffer.get(), CAIRO_FORMAT_ARGB32,
+ cairo_image_surface_create_for_data(pBuffer, CAIRO_FORMAT_ARGB32,
aDevSize.getX(),
aDevSize.getY(),
cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, aDevSize.getX()))
diff --git a/vcl/inc/headless/svpvd.hxx b/vcl/inc/headless/svpvd.hxx
index 9807c78..9256768 100644
--- a/vcl/inc/headless/svpvd.hxx
+++ b/vcl/inc/headless/svpvd.hxx
@@ -47,7 +47,7 @@ public:
virtual bool SetSize( long nNewDX, long nNewDY ) override;
virtual bool SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const std::shared_ptr<sal_uInt8> &pBuffer
+ sal_uInt8 * pBuffer
) override;
// SalGeometryProvider
diff --git a/vcl/inc/salvd.hxx b/vcl/inc/salvd.hxx
index d3874c1..95b4068 100644
--- a/vcl/inc/salvd.hxx
+++ b/vcl/inc/salvd.hxx
@@ -48,7 +48,7 @@ public:
// Set new size using a buffer at the given address
virtual bool SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const std::shared_ptr<sal_uInt8> & /* pBuffer */ )
+ sal_uInt8 * /* pBuffer */)
{
// Only the headless virtual device has an implementation that uses
// pBuffer (and bTopDown).
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index bd7adff..016bf03 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -280,7 +280,7 @@ void VirtualDevice::dispose()
}
bool VirtualDevice::InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const std::shared_ptr<sal_uInt8> &pBuffer )
+ sal_uInt8 *const pBuffer)
{
SAL_INFO( "vcl.gdi",
"VirtualDevice::InnerImplSetOutputSizePixel( " << rNewSize.Width() << ", "
@@ -386,7 +386,7 @@ void VirtualDevice::ImplFillOpaqueRectangle( const Rectangle& rRect )
}
bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const std::shared_ptr<sal_uInt8> &pBuffer )
+ sal_uInt8 *const pBuffer)
{
if( InnerImplSetOutputSizePixel(rNewSize, bErase, pBuffer) )
{
@@ -401,8 +401,7 @@ bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
if( !mpAlphaVDev )
{
mpAlphaVDev = VclPtr<VirtualDevice>::Create(*this, meAlphaFormat);
- mpAlphaVDev->InnerImplSetOutputSizePixel(rNewSize, bErase,
- std::shared_ptr<sal_uInt8>());
+ mpAlphaVDev->InnerImplSetOutputSizePixel(rNewSize, bErase, nullptr);
}
// TODO: copy full outdev state to new one, here. Also needed in outdev2.cxx:DrawOutDev
@@ -435,12 +434,12 @@ void VirtualDevice::EnableRTL( bool bEnable )
bool VirtualDevice::SetOutputSizePixel( const Size& rNewSize, bool bErase )
{
- return ImplSetOutputSizePixel(rNewSize, bErase, std::shared_ptr<sal_uInt8>());
+ return ImplSetOutputSizePixel(rNewSize, bErase, nullptr);
}
bool VirtualDevice::SetOutputSizePixelScaleOffsetAndBuffer(
const Size& rNewSize, const Fraction& rScale, const Point& rNewOffset,
- const std::shared_ptr<sal_uInt8> &pBuffer )
+ sal_uInt8 *const pBuffer)
{
if (pBuffer) {
MapMode mm = GetMapMode();
commit 39963be8679ceef5d08eda9e04e97b6fbb079b71
Author: Michael Stahl <mstahl at redhat.com>
Date: Tue Jan 26 12:37:20 2016 +0100
vcl: convert boost::shared_array to std::shared_ptr
Change-Id: I9d0ad886c4c6e1c8496eb6129b22d327ca0968eb
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index d022f6f..53d84f7 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -101,11 +101,11 @@ typedef struct
const char *filterName;
} ExtensionMap;
-// We need a shared_array for passing into the BitmapDevice (via
+// We need a shared_ptr for passing into the BitmapDevice (via
// VirtualDevice.SetOutputSizePixelScaleOffsetAndBuffer which goes via the
// SvpVirtualDevice, ending up in the cairo surface. However as we're
// given the array externally we can't delete it, and hence need to override
-// shared_array's default of deleting its pointer.
+// shared_ptr's default of deleting its pointer.
template<typename T>
struct NoDelete
{
@@ -924,7 +924,7 @@ void doc_paintTile (LibreOfficeKitDocument* pThis,
pDevice->SetBackground(Wallpaper(Color(COL_TRANSPARENT)));
#endif
- boost::shared_array< sal_uInt8 > aBuffer( pBuffer, NoDelete< sal_uInt8 >() );
+ std::shared_ptr<sal_uInt8> aBuffer( pBuffer, NoDelete<sal_uInt8>() );
pDevice->SetOutputSizePixelScaleOffsetAndBuffer(
Size(nCanvasWidth, nCanvasHeight), Fraction(1.0), Point(),
@@ -1569,7 +1569,7 @@ unsigned char* doc_renderFont(LibreOfficeKitDocument* /*pThis*/,
unsigned char* pBuffer = static_cast<unsigned char*>(malloc(4 * nFontWidth * nFontHeight));
memset(pBuffer, 0, nFontWidth * nFontHeight * 4);
- boost::shared_array<sal_uInt8> aBuffer(pBuffer, NoDelete< sal_uInt8 >());
+ std::shared_ptr<sal_uInt8> aBuffer(pBuffer, NoDelete<sal_uInt8>());
aDevice->SetBackground(Wallpaper(COL_TRANSPARENT));
aDevice->SetOutputSizePixelScaleOffsetAndBuffer(
diff --git a/include/vcl/virdev.hxx b/include/vcl/virdev.hxx
index b0b960e..e56a9a1 100644
--- a/include/vcl/virdev.hxx
+++ b/include/vcl/virdev.hxx
@@ -23,7 +23,8 @@
#include <vcl/dllapi.h>
#include <vcl/salgtype.hxx>
#include <vcl/outdev.hxx>
-#include <boost/shared_array.hpp>
+
+#include <memory>
class SalVirtualDevice;
struct SystemGraphicsData;
@@ -46,9 +47,9 @@ private:
SAL_DLLPRIVATE void ImplInitVirDev( const OutputDevice* pOutDev, long nDX, long nDY, DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr );
SAL_DLLPRIVATE bool InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const boost::shared_array<sal_uInt8> &pBuffer );
+ const std::shared_ptr<sal_uInt8> &pBuffer );
SAL_DLLPRIVATE bool ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const boost::shared_array<sal_uInt8> &pBuffer );
+ const std::shared_ptr<sal_uInt8> &pBuffer );
VirtualDevice (const VirtualDevice &) = delete;
VirtualDevice & operator= (const VirtualDevice &) = delete;
@@ -126,7 +127,7 @@ public:
bool SetOutputSizePixelScaleOffsetAndBuffer( const Size& rNewSize,
const Fraction& rScale,
const Point& rNewOffset,
- const boost::shared_array<sal_uInt8> &pBuffer );
+ const std::shared_ptr<sal_uInt8> &pBuffer );
bool SetOutputSize( const Size& rNewSize, bool bErase = true )
{ return SetOutputSizePixel( LogicToPixel( rNewSize ), bErase ); }
diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx
index c2dbbb7..1711f39 100644
--- a/vcl/headless/svpvd.cxx
+++ b/vcl/headless/svpvd.cxx
@@ -51,11 +51,11 @@ void SvpSalVirtualDevice::ReleaseGraphics( SalGraphics* pGraphics )
bool SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
{
- return SetSizeUsingBuffer(nNewDX, nNewDY, boost::shared_array<sal_uInt8>());
+ return SetSizeUsingBuffer(nNewDX, nNewDY, std::shared_ptr<sal_uInt8>());
}
bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const boost::shared_array<sal_uInt8> &pBuffer )
+ const std::shared_ptr<sal_uInt8> &pBuffer )
{
B2IVector aDevSize( nNewDX, nNewDY );
if( aDevSize.getX() == 0 )
diff --git a/vcl/inc/headless/svpvd.hxx b/vcl/inc/headless/svpvd.hxx
index 967dc0f..9807c78 100644
--- a/vcl/inc/headless/svpvd.hxx
+++ b/vcl/inc/headless/svpvd.hxx
@@ -47,7 +47,7 @@ public:
virtual bool SetSize( long nNewDX, long nNewDY ) override;
virtual bool SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const boost::shared_array<sal_uInt8> &pBuffer
+ const std::shared_ptr<sal_uInt8> &pBuffer
) override;
// SalGeometryProvider
diff --git a/vcl/inc/salvd.hxx b/vcl/inc/salvd.hxx
index 4500cd9..d3874c1 100644
--- a/vcl/inc/salvd.hxx
+++ b/vcl/inc/salvd.hxx
@@ -22,7 +22,8 @@
#include <vcl/dllapi.h>
#include <salgeom.hxx>
-#include <boost/shared_array.hpp>
+
+#include <memory>
class SalGraphics;
@@ -47,7 +48,7 @@ public:
// Set new size using a buffer at the given address
virtual bool SetSizeUsingBuffer( long nNewDX, long nNewDY,
- const boost::shared_array<sal_uInt8> & /* pBuffer */ )
+ const std::shared_ptr<sal_uInt8> & /* pBuffer */ )
{
// Only the headless virtual device has an implementation that uses
// pBuffer (and bTopDown).
diff --git a/vcl/source/gdi/virdev.cxx b/vcl/source/gdi/virdev.cxx
index 0b00b4c..bd7adff 100644
--- a/vcl/source/gdi/virdev.cxx
+++ b/vcl/source/gdi/virdev.cxx
@@ -280,7 +280,7 @@ void VirtualDevice::dispose()
}
bool VirtualDevice::InnerImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const boost::shared_array<sal_uInt8> &pBuffer )
+ const std::shared_ptr<sal_uInt8> &pBuffer )
{
SAL_INFO( "vcl.gdi",
"VirtualDevice::InnerImplSetOutputSizePixel( " << rNewSize.Width() << ", "
@@ -386,7 +386,7 @@ void VirtualDevice::ImplFillOpaqueRectangle( const Rectangle& rRect )
}
bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
- const boost::shared_array<sal_uInt8> &pBuffer )
+ const std::shared_ptr<sal_uInt8> &pBuffer )
{
if( InnerImplSetOutputSizePixel(rNewSize, bErase, pBuffer) )
{
@@ -402,7 +402,7 @@ bool VirtualDevice::ImplSetOutputSizePixel( const Size& rNewSize, bool bErase,
{
mpAlphaVDev = VclPtr<VirtualDevice>::Create(*this, meAlphaFormat);
mpAlphaVDev->InnerImplSetOutputSizePixel(rNewSize, bErase,
- boost::shared_array<sal_uInt8>());
+ std::shared_ptr<sal_uInt8>());
}
// TODO: copy full outdev state to new one, here. Also needed in outdev2.cxx:DrawOutDev
@@ -435,12 +435,12 @@ void VirtualDevice::EnableRTL( bool bEnable )
bool VirtualDevice::SetOutputSizePixel( const Size& rNewSize, bool bErase )
{
- return ImplSetOutputSizePixel(rNewSize, bErase, boost::shared_array<sal_uInt8>());
+ return ImplSetOutputSizePixel(rNewSize, bErase, std::shared_ptr<sal_uInt8>());
}
bool VirtualDevice::SetOutputSizePixelScaleOffsetAndBuffer(
const Size& rNewSize, const Fraction& rScale, const Point& rNewOffset,
- const boost::shared_array<sal_uInt8> &pBuffer )
+ const std::shared_ptr<sal_uInt8> &pBuffer )
{
if (pBuffer) {
MapMode mm = GetMapMode();
More information about the Libreoffice-commits
mailing list