Skip to content

Commit ec909b0

Browse files
committed
[bugfix] Crash when exporting (invalid) legend to qlr
Fixes #18981 Save QLR crashes QGIS 3 This patch definitely prevents the crash but I'm not sure if we should also introduce the same check in QgsLayerTree::isLayer or even in QgsLayerTreeGroup::findLayers() or also when importing a qlr that might lead to invalid layer (like in this bug report).
1 parent 8ef0d1f commit ec909b0

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/core/qgslayerdefinition.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ bool QgsLayerDefinition::exportLayerDefinition( QDomDocument doc, const QList<Qg
214214
QList<QgsLayerTreeLayer *> layers = root->findLayers();
215215
Q_FOREACH ( QgsLayerTreeLayer *layer, layers )
216216
{
217+
if ( ! layer->layer() )
218+
{
219+
QgsDebugMsgLevel( QStringLiteral( "Not a valid map layer: skipping %1" ).arg( layer->name( ) ), 4 );
220+
continue;
221+
}
217222
QDomElement layerelm = doc.createElement( QStringLiteral( "maplayer" ) );
218223
layer->layer()->writeLayerXml( layerelm, doc, context );
219224
layerselm.appendChild( layerelm );

0 commit comments

Comments
 (0)