[2.0.x] Fixed #29959 -- Cached GEOS version in WKBWriter class.
Regression inf185d929fa
. Backport ofe7e5505902
from master.
This commit is contained in:
parent
6d9b1e5706
commit
3cc125b582
|
@ -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
|
||||
|
||||
|
|
|
@ -9,4 +9,6 @@ Django 1.11.17 fixes several bugs in 1.11.16.
|
|||
Bugfixes
|
||||
========
|
||||
|
||||
* ...
|
||||
* Prevented repetitive calls to ``geos_version_tuple()`` in the ``WKBWriter``
|
||||
class in an attempt to fix a random crash involving ``LooseVersion`` since
|
||||
Django 1.11.14 (:ticket:`29959`).
|
||||
|
|
|
@ -9,4 +9,6 @@ Django 2.0.10 fixes several bugs in 2.0.9.
|
|||
Bugfixes
|
||||
========
|
||||
|
||||
* ...
|
||||
* Prevented repetitive calls to ``geos_version_tuple()`` in the ``WKBWriter``
|
||||
class in an attempt to fix a random crash involving ``LooseVersion`` since
|
||||
Django 2.0.6 (:ticket:`29959`).
|
||||
|
|
Loading…
Reference in New Issue