From 4d67f803b41167e5833bf9725ad67026d471e7ad Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Tue, 3 Sep 2019 09:05:56 +1000 Subject: [PATCH] Fix leak --- .../symbology/qgsgraduatedsymbolrenderer.sip.in | 3 ++- src/core/symbology/qgsgraduatedsymbolrenderer.cpp | 10 ++++------ src/core/symbology/qgsgraduatedsymbolrenderer.h | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/python/core/auto_generated/symbology/qgsgraduatedsymbolrenderer.sip.in b/python/core/auto_generated/symbology/qgsgraduatedsymbolrenderer.sip.in index 40dcf10df2b..a0d1463c6b6 100644 --- a/python/core/auto_generated/symbology/qgsgraduatedsymbolrenderer.sip.in +++ b/python/core/auto_generated/symbology/qgsgraduatedsymbolrenderer.sip.in @@ -261,7 +261,8 @@ Recalculate classes for a layer :param nclasses: the number of classes %End - const QgsRendererRangeLabelFormat &labelFormat() const; + + QgsRendererRangeLabelFormat labelFormat() const /Deprecated/; %Docstring Returns the label format used to generate default classification labels diff --git a/src/core/symbology/qgsgraduatedsymbolrenderer.cpp b/src/core/symbology/qgsgraduatedsymbolrenderer.cpp index fea9203b570..cf7546dd20c 100644 --- a/src/core/symbology/qgsgraduatedsymbolrenderer.cpp +++ b/src/core/symbology/qgsgraduatedsymbolrenderer.cpp @@ -433,14 +433,12 @@ void QgsGraduatedSymbolRenderer::updateClasses( const QgsVectorLayer *vl, int nc updateColorRamp( nullptr ); } -const QgsRendererRangeLabelFormat &QgsGraduatedSymbolRenderer::labelFormat() const +Q_NOWARN_DEPRECATED_PUSH +QgsRendererRangeLabelFormat QgsGraduatedSymbolRenderer::labelFormat() const { - // this is leaking but will be removed in QGIS 4 - Q_NOWARN_DEPRECATED_PUSH - QgsRendererRangeLabelFormat *format = new QgsRendererRangeLabelFormat( mClassificationMethod->labelFormat(), mClassificationMethod->labelPrecision(), mClassificationMethod->labelTrimTrailingZeroes() ); - Q_NOWARN_DEPRECATED_POP - return *format; + return QgsRendererRangeLabelFormat( mClassificationMethod->labelFormat(), mClassificationMethod->labelPrecision(), mClassificationMethod->labelTrimTrailingZeroes() ); } +Q_NOWARN_DEPRECATED_POP QgsFeatureRenderer *QgsGraduatedSymbolRenderer::create( QDomElement &element, const QgsReadWriteContext &context ) { diff --git a/src/core/symbology/qgsgraduatedsymbolrenderer.h b/src/core/symbology/qgsgraduatedsymbolrenderer.h index de3360d88c1..600029ed1a0 100644 --- a/src/core/symbology/qgsgraduatedsymbolrenderer.h +++ b/src/core/symbology/qgsgraduatedsymbolrenderer.h @@ -232,7 +232,7 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer * \since QGIS 2.6 * \deprecated since QGIS 3.10 use classificationMethod() and QgsClassificationMethod::setLabelFormat instead */ - Q_DECL_DEPRECATED const QgsRendererRangeLabelFormat &labelFormat() const; + Q_DECL_DEPRECATED QgsRendererRangeLabelFormat labelFormat() const SIP_DEPRECATED; /** * Set the label format used to generate default classification labels