Fixed #30274 -- Prevented segmentation fault on LineString iteration.
This reverts commit 138a78ec8c
and adds
a test for the regression.
This commit is contained in:
parent
e4bc4f26b2
commit
f2a725fba3
|
@ -91,7 +91,8 @@ class LineString(LinearGeometryMixin, GEOSGeometry):
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
"Allow iteration over this LineString."
|
"Allow iteration over this LineString."
|
||||||
return iter(self._cs)
|
for i in range(len(self)):
|
||||||
|
yield self[i]
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
"Return the number of points in this LineString."
|
"Return the number of points in this LineString."
|
||||||
|
|
|
@ -1434,3 +1434,12 @@ class GEOSTest(SimpleTestCase, TestDataMixin):
|
||||||
self.assertEqual(p.transform(2774, clone=True), Point(srid=2774))
|
self.assertEqual(p.transform(2774, clone=True), Point(srid=2774))
|
||||||
p.transform(2774)
|
p.transform(2774)
|
||||||
self.assertEqual(p, Point(srid=2774))
|
self.assertEqual(p, Point(srid=2774))
|
||||||
|
|
||||||
|
def test_linestring_iter(self):
|
||||||
|
ls = LineString((0, 0), (1, 1))
|
||||||
|
it = iter(ls)
|
||||||
|
# Step into CoordSeq iterator.
|
||||||
|
next(it)
|
||||||
|
ls[:] = []
|
||||||
|
with self.assertRaises(IndexError):
|
||||||
|
next(it)
|
||||||
|
|
Loading…
Reference in New Issue