diff options
author | Noel <noel.grandin@collabora.co.uk> | 2021-02-10 13:23:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-02-11 07:57:56 +0100 |
commit | 14cb12bde07b8becf69b648ecc6642bdccf8a7cd (patch) | |
tree | e616a44bdeb412b518e8f4fcee20f9aaeb8574e9 /drawinglayer | |
parent | 5128bf29d5febceaec51854595f23ae487a0cdec (diff) |
loplugin:refcounting generalise type checking
Change-Id: Ia013878ac9c2918d8eaf9aab16b291d8211e708f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110700
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/inc/wmfemfhelper.hxx | 9 | ||||
-rw-r--r-- | drawinglayer/source/tools/emfphelperdata.cxx | 30 | ||||
-rw-r--r-- | drawinglayer/source/tools/wmfemfhelper.cxx | 72 |
3 files changed, 58 insertions, 53 deletions
diff --git a/drawinglayer/inc/wmfemfhelper.hxx b/drawinglayer/inc/wmfemfhelper.hxx index 7b643bf5e36c..6c58dac68f7e 100644 --- a/drawinglayer/inc/wmfemfhelper.hxx +++ b/drawinglayer/inc/wmfemfhelper.hxx @@ -22,6 +22,7 @@ #include <sal/config.h> #include <drawinglayer/primitive2d/baseprimitive2d.hxx> #include <vcl/font.hxx> +#include <rtl/ref.hxx> #include <vcl/outdevstate.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/polygon/b2dpolypolygon.hxx> @@ -43,13 +44,17 @@ namespace wmfemfhelper class TargetHolder { private: - std::vector< std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> > aTargets; + std::vector< rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> > aTargets; public: TargetHolder(); ~TargetHolder(); sal_uInt32 size() const; - void append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pCandidate); + void append(const rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> & pCandidate) + { + append(pCandidate.get()); + } + void append(drawinglayer::primitive2d::BasePrimitive2D* pCandidate); drawinglayer::primitive2d::Primitive2DContainer getPrimitive2DSequence(const PropertyHolder& rPropertyHolder); }; } diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx index d55babc0e960..e92e3e58ef27 100644 --- a/drawinglayer/source/tools/emfphelperdata.cxx +++ b/drawinglayer/source/tools/emfphelperdata.cxx @@ -572,7 +572,7 @@ namespace emfplushelper if (!pen->GetColor().IsTransparent()) { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D( polygon, lineAttribute, aStrokeAttribute)); @@ -586,7 +586,7 @@ namespace emfplushelper aStrokeAttribute)); mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>( + new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( drawinglayer::primitive2d::Primitive2DContainer { aPrimitive }, (255 - pen->GetColor().GetAlpha()) / 255.0)); } @@ -622,14 +622,14 @@ namespace emfplushelper if (pen->customStartCap->mbIsFilled) { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( startCapPolygon, pen->GetColor().getBColor())); } else { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D( startCapPolygon, lineAttribute, aStrokeAttribute)); @@ -667,14 +667,14 @@ namespace emfplushelper if (pen->customEndCap->mbIsFilled) { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( endCapPolygon, pen->GetColor().getBColor())); } else { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonStrokePrimitive2D( endCapPolygon, lineAttribute, aStrokeAttribute)); @@ -695,7 +695,7 @@ namespace emfplushelper { // not transparent mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( polygon, color.getBColor())); } @@ -707,7 +707,7 @@ namespace emfplushelper color.getBColor())); mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>( + new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( drawinglayer::primitive2d::Primitive2DContainer { aPrimitive }, (255 - color.GetAlpha()) / 255.0)); } @@ -787,7 +787,7 @@ namespace emfplushelper // temporal solution: create a solid colored polygon // TODO create a 'real' hatching primitive mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( polygon, fillColor.getBColor())); } @@ -918,7 +918,7 @@ namespace emfplushelper // create the same one used for SVG mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::SvgLinearGradientPrimitive2D>( + new drawinglayer::primitive2d::SvgLinearGradientPrimitive2D( aTextureTransformation, polygon, aVector, @@ -934,7 +934,7 @@ namespace emfplushelper // create the same one used for SVG mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::SvgRadialGradientPrimitive2D>( + new drawinglayer::primitive2d::SvgRadialGradientPrimitive2D( aTextureTransformation, polygon, aVector, @@ -1501,7 +1501,7 @@ namespace emfplushelper if (aSize.Width() > 0 && aSize.Height() > 0) { mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::BitmapPrimitive2D>( + new drawinglayer::primitive2d::BitmapPrimitive2D( VCLUnoHelper::CreateVCLXBitmap(aBmp), aTransformMatrix)); } @@ -1516,7 +1516,7 @@ namespace emfplushelper GDIMetaFile aGDI(image.graphic.GetGDIMetaFile()); aGDI.Clip(aSource); mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::MetafilePrimitive2D>(aTransformMatrix, aGDI)); + new drawinglayer::primitive2d::MetafilePrimitive2D(aTransformMatrix, aGDI)); } } else @@ -1674,7 +1674,7 @@ namespace emfplushelper } mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( maMapTransform, drawinglayer::primitive2d::Primitive2DContainer { aPrimitiveText } )); } @@ -2158,7 +2158,7 @@ namespace emfplushelper (255 - color.GetAlpha()) / 255.0); } mrTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( maMapTransform, drawinglayer::primitive2d::Primitive2DContainer { aPrimitiveText } )); } diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx b/drawinglayer/source/tools/wmfemfhelper.cxx index a5f0278b0c64..00ec09c9ab00 100644 --- a/drawinglayer/source/tools/wmfemfhelper.cxx +++ b/drawinglayer/source/tools/wmfemfhelper.cxx @@ -330,11 +330,11 @@ namespace wmfemfhelper return aTargets.size(); } - void TargetHolder::append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pCandidate) + void TargetHolder::append(drawinglayer::primitive2d::BasePrimitive2D* pCandidate) { if (pCandidate) { - aTargets.push_back(std::move(pCandidate)); + aTargets.push_back(pCandidate); } } @@ -345,7 +345,7 @@ namespace wmfemfhelper for (sal_uInt32 a(0); a < nCount; a++) { - xRetval[a] = aTargets[a].release(); + xRetval[a] = aTargets[a].get(); } // Since we have released them from the list aTargets.clear(); @@ -454,7 +454,7 @@ namespace wmfemfhelper if(rProperties.getTransformation().isIdentity()) { rTarget.append( - std::make_unique<drawinglayer::primitive2d::PointArrayPrimitive2D>( + new drawinglayer::primitive2d::PointArrayPrimitive2D( rPositions, rBColor)); } @@ -468,7 +468,7 @@ namespace wmfemfhelper } rTarget.append( - std::make_unique<drawinglayer::primitive2d::PointArrayPrimitive2D>( + new drawinglayer::primitive2d::PointArrayPrimitive2D( aPositions, rBColor)); } @@ -485,7 +485,7 @@ namespace wmfemfhelper basegfx::B2DPolygon aLinePolygon(rLinePolygon); aLinePolygon.transform(rProperties.getTransformation()); rTarget.append( - std::make_unique<drawinglayer::primitive2d::PolygonHairlinePrimitive2D>( + new drawinglayer::primitive2d::PolygonHairlinePrimitive2D( aLinePolygon, rProperties.getLineColor())); } @@ -502,7 +502,7 @@ namespace wmfemfhelper basegfx::B2DPolyPolygon aFillPolyPolygon(rFillPolyPolygon); aFillPolyPolygon.transform(rProperties.getTransformation()); rTarget.append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( aFillPolyPolygon, rProperties.getFillColor())); } @@ -556,7 +556,7 @@ namespace wmfemfhelper fAccumulated); rTarget.append( - std::make_unique<drawinglayer::primitive2d::PolygonStrokePrimitive2D>( + new drawinglayer::primitive2d::PolygonStrokePrimitive2D( aLinePolygon, aLineAttribute, aStrokeAttribute)); @@ -564,7 +564,7 @@ namespace wmfemfhelper else { rTarget.append( - std::make_unique<drawinglayer::primitive2d::PolygonStrokePrimitive2D>( + new drawinglayer::primitive2d::PolygonStrokePrimitive2D( aLinePolygon, aLineAttribute)); } @@ -630,7 +630,7 @@ namespace wmfemfhelper aPoint = rProperties.getTransformation() * aPoint; rTarget.append( - std::make_unique<drawinglayer::primitive2d::DiscreteBitmapPrimitive2D>( + new drawinglayer::primitive2d::DiscreteBitmapPrimitive2D( rBitmapEx, aPoint)); } @@ -657,7 +657,7 @@ namespace wmfemfhelper aObjectTransform = rProperties.getTransformation() * aObjectTransform; rTarget.append( - std::make_unique<drawinglayer::primitive2d::BitmapPrimitive2D>( + new drawinglayer::primitive2d::BitmapPrimitive2D( VCLUnoHelper::CreateVCLXBitmap(rBitmapEx), aObjectTransform)); } @@ -853,7 +853,7 @@ namespace wmfemfhelper if(!aSubContent.empty()) { rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::GroupPrimitive2D>( + new drawinglayer::primitive2d::GroupPrimitive2D( aSubContent)); } } @@ -900,7 +900,7 @@ namespace wmfemfhelper { // force content to black rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::ModifiedColorPrimitive2D>( + new drawinglayer::primitive2d::ModifiedColorPrimitive2D( aSubContent, std::make_shared<basegfx::BColorModifier_replace>( basegfx::BColor(0.0, 0.0, 0.0)))); @@ -909,7 +909,7 @@ namespace wmfemfhelper { // invert content rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::InvertPrimitive2D>( + new drawinglayer::primitive2d::InvertPrimitive2D( aSubContent)); } } @@ -929,7 +929,7 @@ namespace wmfemfhelper /** helper to create needed data to emulate the VCL Wallpaper Metafile action. It is a quite mighty action. This helper is for simple color filled background. */ - static std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> CreateColorWallpaper( + static rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> CreateColorWallpaper( const basegfx::B2DRange& rRange, const basegfx::BColor& rColor, PropertyHolder const & rPropertyHolder) @@ -937,7 +937,7 @@ namespace wmfemfhelper basegfx::B2DPolygon aOutline(basegfx::utils::createPolygonFromRect(rRange)); aOutline.transform(rPropertyHolder.getTransformation()); - return std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + return new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon(aOutline), rColor); } @@ -945,7 +945,7 @@ namespace wmfemfhelper /** helper to create needed data to emulate the VCL Wallpaper Metafile action. It is a quite mighty action. This helper is for gradient filled background. */ - static std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> CreateGradientWallpaper( + static rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> CreateGradientWallpaper( const basegfx::B2DRange& rRange, const Gradient& rGradient, PropertyHolder const & rPropertyHolder) @@ -960,19 +960,19 @@ namespace wmfemfhelper else { // really a gradient - std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D> pRetval( + rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> pRetval( new drawinglayer::primitive2d::FillGradientPrimitive2D( rRange, aAttribute)); if(!rPropertyHolder.getTransformation().isIdentity()) { - const drawinglayer::primitive2d::Primitive2DReference xPrim(pRetval.release()); + const drawinglayer::primitive2d::Primitive2DReference xPrim(pRetval.get()); const drawinglayer::primitive2d::Primitive2DContainer xSeq { xPrim }; - pRetval.reset(new drawinglayer::primitive2d::TransformPrimitive2D( + pRetval = new drawinglayer::primitive2d::TransformPrimitive2D( rPropertyHolder.getTransformation(), - xSeq)); + xSeq); } return pRetval; @@ -1032,7 +1032,7 @@ namespace wmfemfhelper if(rProperty.getTransformation().isIdentity()) { // add directly - rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(pBitmapWallpaperFill)); + rTarget.append(pBitmapWallpaperFill); } else { @@ -1040,7 +1040,7 @@ namespace wmfemfhelper const drawinglayer::primitive2d::Primitive2DReference xPrim(pBitmapWallpaperFill); rTarget.append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( rProperty.getTransformation(), drawinglayer::primitive2d::Primitive2DContainer { xPrim })); } @@ -1289,7 +1289,7 @@ namespace wmfemfhelper // add created text primitive to target if(rProperty.getTransformation().isIdentity()) { - rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(pResult)); + rTarget.append(pResult); } else { @@ -1297,7 +1297,7 @@ namespace wmfemfhelper const drawinglayer::primitive2d::Primitive2DReference aReference(pResult); rTarget.append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( rProperty.getTransformation(), drawinglayer::primitive2d::Primitive2DContainer { aReference })); } @@ -1413,7 +1413,7 @@ namespace wmfemfhelper { for(drawinglayer::primitive2d::BasePrimitive2D* a : aTargetVector) { - rTarget.append(std::unique_ptr<drawinglayer::primitive2d::BasePrimitive2D>(a)); + rTarget.append(a); } } else @@ -1427,7 +1427,7 @@ namespace wmfemfhelper } rTarget.append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( rProperty.getTransformation(), xTargets)); } @@ -1977,7 +1977,7 @@ namespace wmfemfhelper { // add with transformation rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::TransformPrimitive2D>( + new drawinglayer::primitive2d::TransformPrimitive2D( rPropertyHolders.Current().getTransformation(), xSubContent)); } @@ -2165,7 +2165,7 @@ namespace wmfemfhelper // when a MetaGradientAction is executed aOutline.transform(rPropertyHolders.Current().getTransformation()); rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::MaskPrimitive2D>( + new drawinglayer::primitive2d::MaskPrimitive2D( aOutline, xGradient)); } @@ -2195,7 +2195,7 @@ namespace wmfemfhelper aAttribute)); rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::MaskPrimitive2D>( + new drawinglayer::primitive2d::MaskPrimitive2D( aOutline, drawinglayer::primitive2d::Primitive2DContainer { aFillHatch })); } @@ -2707,7 +2707,7 @@ namespace wmfemfhelper if(!aSubContent.empty()) { rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>( + new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( aSubContent, nTransparence * 0.01)); } @@ -2741,7 +2741,7 @@ namespace wmfemfhelper // embed using EpsPrimitive rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::EpsPrimitive2D>( + new drawinglayer::primitive2d::EpsPrimitive2D( aObjectTransform, pA->GetLink(), pA->GetSubstitute())); @@ -2861,7 +2861,7 @@ namespace wmfemfhelper { // not really a gradient; create UnifiedTransparencePrimitive2D rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::UnifiedTransparencePrimitive2D>( + new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( xSubContent, aAttribute.getStartColor().luminance())); } @@ -2879,7 +2879,7 @@ namespace wmfemfhelper // create transparence primitive rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::TransparencePrimitive2D>( + new drawinglayer::primitive2d::TransparencePrimitive2D( xSubContent, drawinglayer::primitive2d::Primitive2DContainer { xTransparence })); } @@ -2981,7 +2981,7 @@ namespace wmfemfhelper { // not really a gradient rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonColorPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D( aPolyPolygon, aAttribute.getStartColor())); } @@ -2989,7 +2989,7 @@ namespace wmfemfhelper { // really a gradient rTargetHolders.Current().append( - std::make_unique<drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D>( + new drawinglayer::primitive2d::PolyPolygonGradientPrimitive2D( aPolyPolygon, aAttribute)); } |