Skip to content

Commit 6d95ba0

Browse files
committed
Fix nasty crash caused by converting MultiLineStrings to GML2
Exporting the geometry to GML2 would corrupt it, causing a future crash to occur
1 parent 039aff6 commit 6d95ba0

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

src/core/geometry/qgsmultilinestring.cpp

+2-8
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,11 @@ QDomElement QgsMultiLineString::asGML2( QDomDocument &doc, int precision, const
5454
QDomElement elemMultiLineString = doc.createElementNS( ns, QStringLiteral( "MultiLineString" ) );
5555
for ( const QgsAbstractGeometry *geom : mGeometries )
5656
{
57-
if ( qgsgeometry_cast<const QgsLineString *>( geom ) )
57+
if ( const QgsLineString *lineString = qgsgeometry_cast<const QgsLineString *>( geom ) )
5858
{
59-
const QgsLineString *lineString = static_cast<const QgsLineString *>( geom );
60-
6159
QDomElement elemLineStringMember = doc.createElementNS( ns, QStringLiteral( "lineStringMember" ) );
6260
elemLineStringMember.appendChild( lineString->asGML2( doc, precision, ns ) );
6361
elemMultiLineString.appendChild( elemLineStringMember );
64-
65-
delete lineString;
6662
}
6763
}
6864

@@ -74,10 +70,8 @@ QDomElement QgsMultiLineString::asGML3( QDomDocument &doc, int precision, const
7470
QDomElement elemMultiCurve = doc.createElementNS( ns, QStringLiteral( "MultiCurve" ) );
7571
for ( const QgsAbstractGeometry *geom : mGeometries )
7672
{
77-
if ( qgsgeometry_cast<const QgsLineString *>( geom ) )
73+
if ( const QgsLineString *lineString = qgsgeometry_cast<const QgsLineString *>( geom ) )
7874
{
79-
const QgsLineString *lineString = static_cast<const QgsLineString *>( geom );
80-
8175
QDomElement elemCurveMember = doc.createElementNS( ns, QStringLiteral( "curveMember" ) );
8276
elemCurveMember.appendChild( lineString->asGML3( doc, precision, ns ) );
8377
elemMultiCurve.appendChild( elemCurveMember );

0 commit comments

Comments
 (0)