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
This commit is contained in:
parent
f58fb383fb
commit
1d581cda67
|
@ -24,7 +24,7 @@ class GDALBase(object):
|
||||||
def _set_ptr(self, ptr):
|
def _set_ptr(self, ptr):
|
||||||
# Only allow the pointer to be set with pointers of the
|
# Only allow the pointer to be set with pointers of the
|
||||||
# compatible type or None (NULL).
|
# compatible type or None (NULL).
|
||||||
if isinstance(ptr, int):
|
if isinstance(ptr, (int, long)):
|
||||||
self._ptr = self.ptr_type(ptr)
|
self._ptr = self.ptr_type(ptr)
|
||||||
elif isinstance(ptr, (self.ptr_type, NoneType)):
|
elif isinstance(ptr, (self.ptr_type, NoneType)):
|
||||||
self._ptr = ptr
|
self._ptr = ptr
|
||||||
|
|
|
@ -109,6 +109,8 @@ def check_errcode(result, func, cargs):
|
||||||
|
|
||||||
def check_pointer(result, func, cargs):
|
def check_pointer(result, func, cargs):
|
||||||
"Makes sure the result pointer is valid."
|
"Makes sure the result pointer is valid."
|
||||||
|
if isinstance(result, (int, long)):
|
||||||
|
result = c_void_p(result)
|
||||||
if bool(result):
|
if bool(result):
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue