[cig-commits] r9233 - in cs/spatialdata-0.1/trunk: . libsrc/spatialdb modulesrc/spatialdb modulesrc/utils
brad at geodynamics.org
brad at geodynamics.org
Tue Feb 5 10:33:58 PST 2008
Author: brad
Date: 2008-02-05 10:33:58 -0800 (Tue, 05 Feb 2008)
New Revision: 9233
Modified:
cs/spatialdata-0.1/trunk/configure.ac
cs/spatialdata-0.1/trunk/libsrc/spatialdb/UniformDB.hh
cs/spatialdata-0.1/trunk/modulesrc/spatialdb/spatialdb.pyxe.src
cs/spatialdata-0.1/trunk/modulesrc/utils/simplearray.pyxe.src
Log:
Fixed some minor memory allocation/deallocation errors (need to use C++ allocator when creating SimpleCppArrays).
Modified: cs/spatialdata-0.1/trunk/configure.ac
===================================================================
--- cs/spatialdata-0.1/trunk/configure.ac 2008-02-05 15:47:54 UTC (rev 9232)
+++ cs/spatialdata-0.1/trunk/configure.ac 2008-02-05 18:33:58 UTC (rev 9233)
@@ -53,8 +53,6 @@
AM_CONDITIONAL([NO_UNDEFINED], [test "$allow_undefined_flag" = unsupported])
AC_SUBST(AM_LDFLAGS)
-AM_PATH_PYTHON([2.3])
-
# ----------------------------------------------------------------------
# PROJ4
AC_CHECK_LIB(proj, pj_init_plus, [
@@ -111,6 +109,7 @@
AC_ARG_VAR(PYTHONPATH, [Python module search path])
CIT_PYTHON_SYSCONFIG
CIT_PYTHON_EGG_SETUP
+ AM_PATH_PYTHON([2.3])
# PYREX/PYREXEMBED
AC_CHECK_PROG([have_pyrex],
Modified: cs/spatialdata-0.1/trunk/libsrc/spatialdb/UniformDB.hh
===================================================================
--- cs/spatialdata-0.1/trunk/libsrc/spatialdb/UniformDB.hh 2008-02-05 15:47:54 UTC (rev 9232)
+++ cs/spatialdata-0.1/trunk/libsrc/spatialdb/UniformDB.hh 2008-02-05 18:33:58 UTC (rev 9233)
@@ -61,10 +61,10 @@
const int numValues);
/// Open the database and prepare for querying.
- inline void open(void);
+ void open(void);
/// Close the database.
- inline void close(void);
+ void close(void);
/** Set values to be returned by queries.
*
Modified: cs/spatialdata-0.1/trunk/modulesrc/spatialdb/spatialdb.pyxe.src
===================================================================
--- cs/spatialdata-0.1/trunk/modulesrc/spatialdb/spatialdb.pyxe.src 2008-02-05 15:47:54 UTC (rev 9232)
+++ cs/spatialdata-0.1/trunk/modulesrc/spatialdb/spatialdb.pyxe.src 2008-02-05 18:33:58 UTC (rev 9233)
@@ -45,6 +45,43 @@
"""
return PyCObject_AsVoidPtr(obj.handle)
+cdef double* doubleArray(size):
+ """
+ Allocate C++ double array.
+ """
+ # create shim
+ #embed{ double* doubleArray_cpp(int size)
+ double* result = (size > 0) ? new double[size] : 0;
+ return result;
+ #}embed
+ return doubleArray_cpp(size)
+
+
+cdef float* floatArray(size):
+ """
+ Allocate C++ float array.
+ """
+ # create shim
+ #embed{ float* floatArray_cpp(int size)
+ float* result = (size > 0) ? new float[size] : 0;
+ return result;
+ #}embed
+ return floatArray_cpp(size)
+
+
+cdef int* intArray(size):
+ """
+ Allocate C++ int array.
+ """
+ # create shim
+ #embed{ int* intArray_cpp(int size)
+ int* result = (size > 0) ? new int[size] : 0;
+ return result;
+ #}embed
+ return intArray_cpp(size)
+
+
+# ----------------------------------------------------------------------
cdef void SpatialDB_destructor(void* obj):
"""
Destroy SpatialDB object.
@@ -58,21 +95,6 @@
SpatialDB_destructor_cpp(obj)
return
-cdef void SimpleIO_destructor(void* obj):
- """
- Destructor SimplIO object.
- """
- # create shim for destructor
- #embed{ void SimpleIO_destructor_cpp(void* pObj)
- spatialdata::spatialdb::SimpleIO* pIO =
- (spatialdata::spatialdb::SimpleIO*) pObj;
- delete pIO;
- #}embed
- SimpleIO_destructor_cpp(obj)
- return
-
-
-# ----------------------------------------------------------------------
cdef class SpatialDB:
cdef void* thisptr # Pointer to C++ object
@@ -256,10 +278,10 @@
pLocs = <double*> PyCObject_AsVoidPtr(locs.data)
cdef double* pVals
- pVals = <double*> malloc(nlocs*nvals*sizeof(double))
+ pVals = doubleArray(nlocs*nvals)
cdef int* pErr
- pErr = <int*> malloc(nlocs*sizeof(int))
+ pErr = <int*> intArray(nlocs)
cdef double* valbuffer
valbuffer = <double*> malloc(nvals*sizeof(double))
@@ -349,6 +371,20 @@
# ----------------------------------------------------------------------
+cdef void SimpleIO_destructor(void* obj):
+ """
+ Destructor SimplIO object.
+ """
+ # create shim for destructor
+ #embed{ void SimpleIO_destructor_cpp(void* pObj)
+ spatialdata::spatialdb::SimpleIO* pIO =
+ (spatialdata::spatialdb::SimpleIO*) pObj;
+ delete pIO;
+ #}embed
+ SimpleIO_destructor_cpp(obj)
+ return
+
+
cdef class SimpleIO:
cdef void* thisptr # Pointer to C++ object
@@ -427,6 +463,8 @@
spatialdata::geocoords::CoordSys* pCS =
(spatialdata::geocoords::CoordSys*) pCSObj;
((spatialdata::spatialdb::SimpleIOAscii*) pObj)->write(*pData, pCS);
+ delete[] pData->valNames;
+ delete[] pData->valUnits;
delete pData; pData = 0;
#}embed
Modified: cs/spatialdata-0.1/trunk/modulesrc/utils/simplearray.pyxe.src
===================================================================
--- cs/spatialdata-0.1/trunk/modulesrc/utils/simplearray.pyxe.src 2008-02-05 15:47:54 UTC (rev 9232)
+++ cs/spatialdata-0.1/trunk/modulesrc/utils/simplearray.pyxe.src 2008-02-05 18:33:58 UTC (rev 9233)
@@ -222,8 +222,10 @@
# ----------------------------------------------------------------------
cdef class SimpleCppArray(SimpleArray):
- """Implementation of generic multi-dimensional array created from C++
- array."""
+ """
+ Implementation of generic multi-dimensional array created from C++
+ array.
+ """
cdef void* arrayptr # Pointer to head of array
@@ -272,8 +274,10 @@
property __array_struct__:
- """Generic array structure property compatible with NumPy, Numeric,
- and numarray."""
+ """
+ Generic array structure property compatible with NumPy, Numeric,
+ and numarray.
+ """
def __get__(self):
Py_INCREF(self)
obj = PyCObject_FromVoidPtrAndDesc(<void*> self._interface, <void*> self,
@@ -384,8 +388,8 @@
'kind': 'f',
'type': "double"},
'f4': {'size': sizeof(float),
- 'kind': 'f',
- 'type': "float"},
+ 'kind': 'f',
+ 'type': "float"},
'i4': {'size': sizeof(int),
'kind': 'i',
'type': "int"}}
@@ -408,7 +412,4 @@
return obj
-# version
-__id__ = "$Id$"
-
# End of file
More information about the cig-commits
mailing list