Skip to content

Commit aa0ce1c

Browse files
committedMay 12, 2017
Fix double delete of symbol
Fix #15961
1 parent 396a135 commit aa0ce1c

File tree

4 files changed

+16
-2
lines changed

4 files changed

+16
-2
lines changed
 

‎src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,7 @@ void QgsCategorizedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsPanelWidget
10111011
if ( !dlg )
10121012
return;
10131013

1014-
delete dlg->symbol();
1014+
dlg->releaseSymbol();
10151015
}
10161016

10171017
void QgsCategorizedSymbolRendererV2Widget::updateSymbolsFromWidget()

‎src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ void QgsGraduatedSymbolRendererV2Widget::cleanUpSymbolSelector( QgsPanelWidget *
693693
if ( !dlg )
694694
return;
695695

696-
delete dlg->symbol();
696+
dlg->releaseSymbol();
697697
}
698698

699699
void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget()

‎src/gui/symbology-ng/qgssymbolv2selectordialog.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,12 @@ void QgsSymbolV2SelectorWidget::setMapCanvas( QgsMapCanvas *canvas )
300300
listWidget->setMapCanvas( canvas );
301301
}
302302

303+
void QgsSymbolV2SelectorWidget::releaseSymbol()
304+
{
305+
delete mSymbol;
306+
mSymbol = nullptr;
307+
}
308+
303309
void QgsSymbolV2SelectorWidget::loadSymbol( QgsSymbolV2* symbol, SymbolLayerItem* parent )
304310
{
305311
SymbolLayerItem* symbolItem = new SymbolLayerItem( symbol );

‎src/gui/symbology-ng/qgssymbolv2selectordialog.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,14 @@ class GUI_EXPORT QgsSymbolV2SelectorWidget: public QgsPanelWidget, private Ui::Q
128128
*/
129129
QgsSymbolV2* symbol() { return mSymbol; }
130130

131+
/**
132+
* Delete the symbol.
133+
*
134+
* \note Not available in Python
135+
* \note Added in QGIS 2.18.8
136+
*/
137+
void releaseSymbol();
138+
131139
protected:
132140

133141
/**

0 commit comments

Comments
 (0)
Please sign in to comment.