File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change @@ -1443,9 +1443,10 @@ bool QgsGeometry::deleteVertexAt(int atVertex)
1443
1443
case QGis::WKBLineString:
1444
1444
{
1445
1445
int * nPoints = (int *)ptr;
1446
- if ((*nPoints) < 3 || vertexnr > (*nPoints)-1 || vertexnr < 0 )
1446
+ if ((*nPoints) < 3 || vertexnr > (*nPoints)-1 || vertexnr < 0 ) // line needs at least 2 vertices
1447
1447
{
1448
- break ;
1448
+ delete newbuffer;
1449
+ return ;
1449
1450
}
1450
1451
int newNPoints = (*nPoints)-1 ; // new number of points
1451
1452
memcpy (newBufferPtr, &newNPoints, sizeof (int ));
@@ -1498,9 +1499,10 @@ bool QgsGeometry::deleteVertexAt(int atVertex)
1498
1499
// find out if the vertex is in this line
1499
1500
if (vertexnr >= pointindex && vertexnr < pointindex + (*nPoints))
1500
1501
{
1501
- if (*nPoints < 3 )
1502
+ if (*nPoints < 3 ) // line needs at least 2 vertices
1502
1503
{
1503
- break ;
1504
+ delete newbuffer;
1505
+ return false ;
1504
1506
}
1505
1507
newNPoint = (*nPoints)-1 ;
1506
1508
}
@@ -1557,7 +1559,8 @@ bool QgsGeometry::deleteVertexAt(int atVertex)
1557
1559
{
1558
1560
if (*nPoints < 5 ) // a ring has at least 3 points
1559
1561
{
1560
- break ;
1562
+ delete newbuffer;
1563
+ return false ;
1561
1564
}
1562
1565
newNPoints = *nPoints - 1 ;
1563
1566
}
@@ -1634,7 +1637,8 @@ bool QgsGeometry::deleteVertexAt(int atVertex)
1634
1637
{
1635
1638
if (*nPoints < 5 ) // a ring has at least 3 points
1636
1639
{
1637
- break ;
1640
+ delete newbuffer;
1641
+ return false ;
1638
1642
}
1639
1643
newNPoints = *nPoints - 1 ;
1640
1644
}
You can’t perform that action at this time.
0 commit comments