From 2b9d216ffc26834968ec7600a7ae194f0b227318 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Tue, 29 Dec 2009 10:39:08 +0000 Subject: [PATCH] When `GEOSFree` is not available on NT platforms, have to specifically use the MS C library. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12024 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/gis/geos/prototypes/errcheck.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/django/contrib/gis/geos/prototypes/errcheck.py b/django/contrib/gis/geos/prototypes/errcheck.py index 0d5e9e24fc..a00b93be6e 100644 --- a/django/contrib/gis/geos/prototypes/errcheck.py +++ b/django/contrib/gis/geos/prototypes/errcheck.py @@ -1,6 +1,7 @@ """ Error checking functions for GEOS ctypes prototype functions. """ +import os from ctypes import c_void_p, string_at, CDLL from django.contrib.gis.geos.error import GEOSException from django.contrib.gis.geos.libgeos import lgeos, GEOS_VERSION @@ -15,8 +16,12 @@ if GEOS_VERSION >= (3, 1, 1): free.restype = None else: # Getting the `free` routine from the C library of the platform. - # The C library is obtained by passing None into `CDLL`. - libc = CDLL(None) + if os.name == 'nt': + # On NT, use the MS C library. + libc = CDLL('msvcrt') + else: + # On POSIX platforms C library is obtained by passing None into `CDLL`. + libc = CDLL(None) free = libc.free ### ctypes error checking routines ###