diff --git a/src/server/services/wms/qgswmsrenderer.cpp b/src/server/services/wms/qgswmsrenderer.cpp index cc0c096872b3..5b253189a1c8 100644 --- a/src/server/services/wms/qgswmsrenderer.cpp +++ b/src/server/services/wms/qgswmsrenderer.cpp @@ -1043,7 +1043,7 @@ namespace QgsWms return true; } - QImage *QgsRenderer::getMap() + std::unique_ptr QgsRenderer::getMap() { // check size if ( !mContext.isValidWidthHeight() ) @@ -1078,7 +1078,7 @@ namespace QgsWms mapSettings.setLayers( layers ); // rendering step for layers - QPainter *renderedPainter = layersRendering( mapSettings, *image ); + QPainter *renderedPainter = layersRendering( mapSettings, image.get() ); if ( !renderedPainter ) // job has been canceled { return nullptr; @@ -1102,7 +1102,7 @@ namespace QgsWms { return nullptr; } - return image.release(); + return image; } std::unique_ptr QgsRenderer::getDxf() @@ -3356,7 +3356,7 @@ namespace QgsWms mTemporaryLayers.clear(); } - QPainter *QgsRenderer::layersRendering( const QgsMapSettings &mapSettings, QImage &image ) const + QPainter *QgsRenderer::layersRendering( const QgsMapSettings &mapSettings, QImage *image ) const { QPainter *painter = nullptr; @@ -3368,7 +3368,7 @@ namespace QgsWms #endif QgsMapRendererJobProxy renderJob( mContext.settings().parallelRendering(), mContext.settings().maxThreads(), &filters ); - renderJob.render( mapSettings, &image, mContext.socketFeedback() ); + renderJob.render( mapSettings, image, mContext.socketFeedback() ); painter = renderJob.takePainter(); if ( !renderJob.errors().isEmpty() ) diff --git a/src/server/services/wms/qgswmsrenderer.h b/src/server/services/wms/qgswmsrenderer.h index 3f538431c2c1..362201364920 100644 --- a/src/server/services/wms/qgswmsrenderer.h +++ b/src/server/services/wms/qgswmsrenderer.h @@ -129,7 +129,7 @@ namespace QgsWms * takes ownership of the image object). * \since QGIS 3.8 */ - QImage *getMap(); + std::unique_ptr getMap(); /** * Returns the map as DXF data @@ -169,7 +169,7 @@ namespace QgsWms QList highlightLayers( QList params ); // Rendering step for layers - QPainter *layersRendering( const QgsMapSettings &mapSettings, QImage &image ) const; + QPainter *layersRendering( const QgsMapSettings &mapSettings, QImage *image ) const; // Rendering step for annotations void annotationsRendering( QPainter *painter, const QgsMapSettings &mapSettings ) const;