mirror of https://github.com/django/django.git
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):
|
||||
"Allow iteration over this LineString."
|
||||
return iter(self._cs)
|
||||
for i in range(len(self)):
|
||||
yield self[i]
|
||||
|
||||
def __len__(self):
|
||||
"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))
|
||||
p.transform(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