canvas/inc/parametricpolypolygon.hxx | 7 ++++++- canvas/source/opengl/ogl_canvashelper.cxx | 3 ++- canvas/source/tools/parametricpolypolygon.cxx | 11 +++++++++++ canvas/source/vcl/canvashelper_texturefill.cxx | 3 ++- 4 files changed, 21 insertions(+), 3 deletions(-)
New commits: commit 4c0bbe4bd97636207cf71a6aa120c67698891da9 Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Wed Dec 14 21:02:27 2022 +0100 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Fri Dec 23 14:20:19 2022 +0000 loplugin:unocast (canvas::ParametricPolyPolygon) (See the upcoming commit introducing that loplugin:unocast on why such dynamic_casts from UNO types are dangerous.) Change-Id: I965d6ba17decda1fa055fb548aa9085d2e786bc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144768 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/canvas/inc/parametricpolypolygon.hxx b/canvas/inc/parametricpolypolygon.hxx index 474bd5da247a..ca2e1cda348e 100644 --- a/canvas/inc/parametricpolypolygon.hxx +++ b/canvas/inc/parametricpolypolygon.hxx @@ -20,6 +20,7 @@ #pragma once #include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/rendering/XParametricPolyPolygon2D.hpp> #include <comphelper/compbase.hxx> #include <basegfx/polygon/b2dpolygon.hxx> @@ -36,7 +37,8 @@ namespace com::sun::star::rendering { class XGraphicDevice; } namespace canvas { typedef comphelper::WeakComponentImplHelper< css::rendering::XParametricPolyPolygon2D, - css::lang::XServiceInfo > ParametricPolyPolygon_Base; + css::lang::XServiceInfo, + css::lang::XUnoTunnel > ParametricPolyPolygon_Base; class CANVASTOOLS_DLLPUBLIC ParametricPolyPolygon final : public ParametricPolyPolygon_Base { @@ -104,6 +106,9 @@ namespace canvas virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override; + sal_Int64 SAL_CALL getSomething(css::uno::Sequence<sal_Int8> const & aIdentifier) override; + static css::uno::Sequence<sal_Int8> const & getUnoTunnelId(); + /// Query all defining values of this object atomically Values getValues() const; diff --git a/canvas/source/opengl/ogl_canvashelper.cxx b/canvas/source/opengl/ogl_canvashelper.cxx index 1b84879b005c..28337013e965 100644 --- a/canvas/source/opengl/ogl_canvashelper.cxx +++ b/canvas/source/opengl/ogl_canvashelper.cxx @@ -21,6 +21,7 @@ #include <rtl/crc.h> #include <rtl/math.hxx> #include <comphelper/diagnose_ex.hxx> +#include <comphelper/servicehelper.hxx> #include <vcl/font.hxx> #include <vcl/kernarray.hxx> #include <vcl/metric.hxx> @@ -553,7 +554,7 @@ namespace oglcanvas // try to cast XParametricPolyPolygon2D reference to // our implementation class. ::canvas::ParametricPolyPolygon* pGradient = - dynamic_cast< ::canvas::ParametricPolyPolygon* >( textures[0].Gradient.get() ); + comphelper::getFromUnoTunnel< ::canvas::ParametricPolyPolygon >( textures[0].Gradient ); if( pGradient ) { diff --git a/canvas/source/tools/parametricpolypolygon.cxx b/canvas/source/tools/parametricpolypolygon.cxx index acad3b58b7d6..00b6c4da2850 100644 --- a/canvas/source/tools/parametricpolypolygon.cxx +++ b/canvas/source/tools/parametricpolypolygon.cxx @@ -22,6 +22,7 @@ #include <basegfx/point/b2dpoint.hxx> #include <basegfx/polygon/b2dpolygontools.hxx> #include <basegfx/range/b2drectangle.hxx> +#include <comphelper/servicehelper.hxx> #include <cppuhelper/supportsservice.hxx> #include <com/sun/star/rendering/XGraphicDevice.hpp> @@ -194,6 +195,16 @@ namespace canvas return { "com.sun.star.rendering.ParametricPolyPolygon" }; } + sal_Int64 ParametricPolyPolygon::getSomething(css::uno::Sequence<sal_Int8> const & aIdentifier) + { + return comphelper::getSomethingImpl(aIdentifier, this); + } + + css::uno::Sequence<sal_Int8> const & ParametricPolyPolygon::getUnoTunnelId() { + static comphelper::UnoIdInit const id; + return id.getSeq(); + } + ParametricPolyPolygon::~ParametricPolyPolygon() { } diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx index 211592685204..02f9f733bdd3 100644 --- a/canvas/source/vcl/canvashelper_texturefill.cxx +++ b/canvas/source/vcl/canvashelper_texturefill.cxx @@ -35,6 +35,7 @@ #include <com/sun/star/rendering/TexturingMode.hpp> #include <rtl/math.hxx> #include <comphelper/diagnose_ex.hxx> +#include <comphelper/servicehelper.hxx> #include <tools/poly.hxx> #include <vcl/bitmapex.hxx> #include <vcl/canvastools.hxx> @@ -637,7 +638,7 @@ namespace vclcanvas // try to cast XParametricPolyPolygon2D reference to // our implementation class. ::canvas::ParametricPolyPolygon* pGradient = - dynamic_cast< ::canvas::ParametricPolyPolygon* >( textures[0].Gradient.get() ); + comphelper::getFromUnoTunnel< ::canvas::ParametricPolyPolygon >( textures[0].Gradient ); if( pGradient && pGradient->getValues().maColors.hasElements() ) {