Skip to content

Commit 48da79d

Browse files
rouaultnyalldawson
authored andcommittedFeb 11, 2021
Vector tiles: fix crash in gsMapBoxGlStyleConverter::parseFillLayer() (fixes #41401)
and also a potential similar one in parseLineLayer() Use default QgsFillSymbol and QgsLineSymbol objects, instead of the default symbols of the project that might lack a QgsSimpleFillSymbolLayer / QgsSimpleLineSymbolLayer. Credits to @nyalldawson for this clean fix.
1 parent 52528c5 commit 48da79d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed
 

‎src/core/vectortile/qgsmapboxglstyleconverter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,9 @@ bool QgsMapBoxGlStyleConverter::parseFillLayer( const QVariantMap &jsonLayer, Qg
309309
}
310310
}
311311

312-
std::unique_ptr< QgsSymbol > symbol( QgsSymbol::defaultSymbol( QgsWkbTypes::PolygonGeometry ) );
312+
std::unique_ptr< QgsSymbol > symbol( qgis::make_unique< QgsFillSymbol >() );
313313
QgsSimpleFillSymbolLayer *fillSymbol = dynamic_cast< QgsSimpleFillSymbolLayer * >( symbol->symbolLayer( 0 ) );
314+
Q_ASSERT( fillSymbol ); // should not fail since QgsFillSymbol() constructor instantiates a QgsSimpleFillSymbolLayer
314315

315316
// set render units
316317
symbol->setOutputUnit( context.targetUnit() );
@@ -588,8 +589,9 @@ bool QgsMapBoxGlStyleConverter::parseLineLayer( const QVariantMap &jsonLayer, Qg
588589
}
589590
}
590591

591-
std::unique_ptr< QgsSymbol > symbol( QgsSymbol::defaultSymbol( QgsWkbTypes::LineGeometry ) );
592+
std::unique_ptr< QgsSymbol > symbol( qgis::make_unique< QgsLineSymbol >() );
592593
QgsSimpleLineSymbolLayer *lineSymbol = dynamic_cast< QgsSimpleLineSymbolLayer * >( symbol->symbolLayer( 0 ) );
594+
Q_ASSERT( lineSymbol ); // should not fail since QgsLineSymbol() constructor instantiates a QgsSimpleLineSymbolLayer
593595

594596
// set render units
595597
symbol->setOutputUnit( context.targetUnit() );

0 commit comments

Comments
 (0)
Please sign in to comment.