BaseMutex->std::mutex in canvas::CachedPrimitiveBase

Change-Id: I9f7c23a4880ea09f3c9a98ad7d27b27bf35483ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147421
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2023-02-21 15:49:49 +02:00
parent 24b3e4a5ba
commit a1d3a0f8ec
6 changed files with 11 additions and 19 deletions

View File

@@ -23,8 +23,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/rendering/XCachedPrimitive.hpp> #include <com/sun/star/rendering/XCachedPrimitive.hpp>
#include <com/sun/star/rendering/ViewState.hpp> #include <com/sun/star/rendering/ViewState.hpp>
#include <cppuhelper/compbase.hxx> #include <comphelper/compbase.hxx>
#include <cppuhelper/basemutex.hxx>
#include <canvas/canvastoolsdllapi.h> #include <canvas/canvastoolsdllapi.h>
@@ -34,14 +33,14 @@ namespace com::sun::star::rendering { class XCanvas; }
namespace canvas namespace canvas
{ {
typedef cppu::WeakComponentImplHelper< css::rendering::XCachedPrimitive, typedef comphelper::WeakComponentImplHelper< css::rendering::XCachedPrimitive,
css::lang::XServiceInfo > CachedPrimitiveBase_Base; css::lang::XServiceInfo > CachedPrimitiveBase_Base;
/** Base class, providing common functionality for implementers of /** Base class, providing common functionality for implementers of
the XCachedPrimitive interface. the XCachedPrimitive interface.
*/ */
class CANVASTOOLS_DLLPUBLIC CachedPrimitiveBase: class CANVASTOOLS_DLLPUBLIC CachedPrimitiveBase:
public cppu::BaseMutex, public CachedPrimitiveBase_Base public CachedPrimitiveBase_Base
{ {
public: public:
@@ -57,7 +56,7 @@ namespace canvas
css::uno::Reference< css::rendering::XCanvas > xTarget ); css::uno::Reference< css::rendering::XCanvas > xTarget );
/// Dispose all internal references /// Dispose all internal references
virtual void SAL_CALL disposing() override; virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
// XCachedPrimitive // XCachedPrimitive
virtual ::sal_Int8 SAL_CALL redraw( const css::rendering::ViewState& aState ) override; virtual ::sal_Int8 SAL_CALL redraw( const css::rendering::ViewState& aState ) override;

View File

@@ -42,12 +42,10 @@ namespace cairocanvas
maRenderState(std::move( aUsedRenderState )) maRenderState(std::move( aUsedRenderState ))
{} {}
void SAL_CALL CachedBitmap::disposing() void CachedBitmap::disposing(std::unique_lock<std::mutex>& rGuard)
{ {
::osl::MutexGuard aGuard( m_aMutex );
mpSurface.reset(); mpSurface.reset();
CachedPrimitiveBase::disposing(); CachedPrimitiveBase::disposing(rGuard);
} }
::sal_Int8 CachedBitmap::doRedraw( const rendering::ViewState& rNewState, ::sal_Int8 CachedBitmap::doRedraw( const rendering::ViewState& rNewState,

View File

@@ -40,7 +40,7 @@ namespace cairocanvas
const css::uno::Reference< css::rendering::XCanvas >& rTarget ); const css::uno::Reference< css::rendering::XCanvas >& rTarget );
/// Dispose all internal references /// Dispose all internal references
virtual void SAL_CALL disposing() override; virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
private: private:
virtual ::sal_Int8 doRedraw( const css::rendering::ViewState& rNewState, virtual ::sal_Int8 doRedraw( const css::rendering::ViewState& rNewState,

View File

@@ -34,7 +34,6 @@ namespace canvas
{ {
CachedPrimitiveBase::CachedPrimitiveBase( rendering::ViewState aUsedViewState, CachedPrimitiveBase::CachedPrimitiveBase( rendering::ViewState aUsedViewState,
uno::Reference< rendering::XCanvas > xTarget ) : uno::Reference< rendering::XCanvas > xTarget ) :
CachedPrimitiveBase_Base( m_aMutex ),
maUsedViewState(std::move( aUsedViewState )), maUsedViewState(std::move( aUsedViewState )),
mxTarget(std::move( xTarget )) mxTarget(std::move( xTarget ))
{ {
@@ -44,10 +43,8 @@ namespace canvas
{ {
} }
void SAL_CALL CachedPrimitiveBase::disposing() void CachedPrimitiveBase::disposing(std::unique_lock<std::mutex>& /*rGuard*/)
{ {
::osl::MutexGuard aGuard( m_aMutex );
maUsedViewState.Clip.clear(); maUsedViewState.Clip.clear();
mxTarget.clear(); mxTarget.clear();
} }

View File

@@ -48,13 +48,11 @@ namespace vclcanvas
{ {
} }
void SAL_CALL CachedBitmap::disposing() void CachedBitmap::disposing(std::unique_lock<std::mutex>& rGuard)
{ {
::osl::MutexGuard aGuard( m_aMutex );
mpGraphicObject.reset(); mpGraphicObject.reset();
CachedPrimitiveBase::disposing(); CachedPrimitiveBase::disposing(rGuard);
} }
::sal_Int8 CachedBitmap::doRedraw( const rendering::ViewState& rNewState, ::sal_Int8 CachedBitmap::doRedraw( const rendering::ViewState& rNewState,

View File

@@ -46,7 +46,7 @@ namespace vclcanvas
const css::uno::Reference< css::rendering::XCanvas >& rTarget ); const css::uno::Reference< css::rendering::XCanvas >& rTarget );
/// Dispose all internal references /// Dispose all internal references
virtual void SAL_CALL disposing() override; virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
private: private:
virtual ::sal_Int8 doRedraw( const css::rendering::ViewState& rNewState, virtual ::sal_Int8 doRedraw( const css::rendering::ViewState& rNewState,