Skip to content

Commit

Permalink
Fix nasty crash caused by converting MultiLineStrings to GML2
Browse files Browse the repository at this point in the history
Exporting the geometry to GML2 would corrupt it, causing a
future crash to occur
  • Loading branch information
nyalldawson committed Sep 25, 2017
1 parent 039aff6 commit 6d95ba0
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions src/core/geometry/qgsmultilinestring.cpp
Expand Up @@ -54,15 +54,11 @@ QDomElement QgsMultiLineString::asGML2( QDomDocument &doc, int precision, const
QDomElement elemMultiLineString = doc.createElementNS( ns, QStringLiteral( "MultiLineString" ) );
for ( const QgsAbstractGeometry *geom : mGeometries )
{
if ( qgsgeometry_cast<const QgsLineString *>( geom ) )
if ( const QgsLineString *lineString = qgsgeometry_cast<const QgsLineString *>( geom ) )
{
const QgsLineString *lineString = static_cast<const QgsLineString *>( geom );

QDomElement elemLineStringMember = doc.createElementNS( ns, QStringLiteral( "lineStringMember" ) );
elemLineStringMember.appendChild( lineString->asGML2( doc, precision, ns ) );
elemMultiLineString.appendChild( elemLineStringMember );

delete lineString;
}
}

Expand All @@ -74,10 +70,8 @@ QDomElement QgsMultiLineString::asGML3( QDomDocument &doc, int precision, const
QDomElement elemMultiCurve = doc.createElementNS( ns, QStringLiteral( "MultiCurve" ) );
for ( const QgsAbstractGeometry *geom : mGeometries )
{
if ( qgsgeometry_cast<const QgsLineString *>( geom ) )
if ( const QgsLineString *lineString = qgsgeometry_cast<const QgsLineString *>( geom ) )
{
const QgsLineString *lineString = static_cast<const QgsLineString *>( geom );

QDomElement elemCurveMember = doc.createElementNS( ns, QStringLiteral( "curveMember" ) );
elemCurveMember.appendChild( lineString->asGML3( doc, precision, ns ) );
elemMultiCurve.appendChild( elemCurveMember );
Expand Down

0 comments on commit 6d95ba0

Please sign in to comment.