summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2018-11-16 15:10:33 +0100
committerTim Graham <timograham@gmail.com>2018-11-16 15:13:40 -0500
commit3cc125b582e5348ae97cc6d555288fa6bf025781 (patch)
tree4e2511baf82d85413699fb0af1ee701bc6787635 /django
parent6d9b1e5706d3d26c2411f8ef70890e84b72c5336 (diff)
[2.0.x] Fixed #29959 -- Cached GEOS version in WKBWriter class.
Regression in f185d929fa1c0caad8c03fccde899b647d7248c6. Backport of e7e55059027ae2f644c852e0ba60dc9307b425e1 from master.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/gis/geos/prototypes/io.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/django/contrib/gis/geos/prototypes/io.py b/django/contrib/gis/geos/prototypes/io.py
index 9a6cd2513e..eb65e322a6 100644
--- a/django/contrib/gis/geos/prototypes/io.py
+++ b/django/contrib/gis/geos/prototypes/io.py
@@ -213,6 +213,7 @@ class WKBWriter(IOBase):
_constructor = wkb_writer_create
ptr_type = WKB_WRITE_PTR
destructor = wkb_writer_destroy
+ geos_version = geos_version_tuple()
def __init__(self, dim=2):
super().__init__()
@@ -235,7 +236,7 @@ class WKBWriter(IOBase):
from django.contrib.gis.geos import Polygon
geom = self._handle_empty_point(geom)
wkb = wkb_writer_write(self.ptr, geom.ptr, byref(c_size_t()))
- if geos_version_tuple() < (3, 6, 1) and isinstance(geom, Polygon) and geom.empty:
+ if self.geos_version < (3, 6, 1) and isinstance(geom, Polygon) and geom.empty:
# Fix GEOS output for empty polygon.
# See https://trac.osgeo.org/geos/ticket/680.
wkb = wkb[:-8] + b'\0' * 4
@@ -246,7 +247,7 @@ class WKBWriter(IOBase):
from django.contrib.gis.geos.polygon import Polygon
geom = self._handle_empty_point(geom)
wkb = wkb_writer_write_hex(self.ptr, geom.ptr, byref(c_size_t()))
- if geos_version_tuple() < (3, 6, 1) and isinstance(geom, Polygon) and geom.empty:
+ if self.geos_version < (3, 6, 1) and isinstance(geom, Polygon) and geom.empty:
wkb = wkb[:-16] + b'0' * 8
return wkb