From 1d581cda674303d5b3c1d7576d31749391f1c510 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Sun, 27 Dec 2009 09:06:33 +0000 Subject: [PATCH] Fixed #11609 -- The `check_pointer` error checking routine and `GDALBase._set_ptr` are now able to handle the long pointer addresses used by some x86_64 platforms. Thanks, rmkemker, for the bug report. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12006 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/gis/gdal/base.py | 2 +- django/contrib/gis/gdal/prototypes/errcheck.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/django/contrib/gis/gdal/base.py b/django/contrib/gis/gdal/base.py index e19b748e6f..f9455c783a 100644 --- a/django/contrib/gis/gdal/base.py +++ b/django/contrib/gis/gdal/base.py @@ -24,7 +24,7 @@ class GDALBase(object): def _set_ptr(self, ptr): # Only allow the pointer to be set with pointers of the # compatible type or None (NULL). - if isinstance(ptr, int): + if isinstance(ptr, (int, long)): self._ptr = self.ptr_type(ptr) elif isinstance(ptr, (self.ptr_type, NoneType)): self._ptr = ptr diff --git a/django/contrib/gis/gdal/prototypes/errcheck.py b/django/contrib/gis/gdal/prototypes/errcheck.py index 3a0e0d6170..91858ea572 100644 --- a/django/contrib/gis/gdal/prototypes/errcheck.py +++ b/django/contrib/gis/gdal/prototypes/errcheck.py @@ -109,6 +109,8 @@ def check_errcode(result, func, cargs): def check_pointer(result, func, cargs): "Makes sure the result pointer is valid." + if isinstance(result, (int, long)): + result = c_void_p(result) if bool(result): return result else: