From 9d3df8f842aecadb6323b4696cbab70b1144a1af Mon Sep 17 00:00:00 2001 From: Brian Clements Date: Tue, 19 Nov 2013 17:46:42 -0600 Subject: [PATCH] Issue #2495 changed gridslice to use correct dimension datatype Former-commit-id: 4c3453a657283e3361e7a1f571712d092b0a3f9b [formerly aa24bc6fce76076f9c408024f45658dd3da1fa17] [formerly 4c3453a657283e3361e7a1f571712d092b0a3f9b [formerly aa24bc6fce76076f9c408024f45658dd3da1fa17] [formerly 5e7f2f0bdffe29bce1656c9143ab18b837d8c0bd [formerly ad33e0ef6530c5528cfa5a349c34a1d11c8c453b]]] Former-commit-id: 5e7f2f0bdffe29bce1656c9143ab18b837d8c0bd Former-commit-id: 90601f6ff81a498f7872ad9d969e43c8759b60f9 [formerly 05b2a015cbe01645f787a0f44b0d239f064a92a7] Former-commit-id: a8c2c5870c2ecc9442ec8502d6b6f96dff027012 --- nativeLib/gridslice/src/gridslice.c | 15 ++++++++------- .../nativeLib/x86_64/gridslice.so | Bin 249217 -> 249169 bytes 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/nativeLib/gridslice/src/gridslice.c b/nativeLib/gridslice/src/gridslice.c index 6d8fcd81fe..247c97ff20 100644 --- a/nativeLib/gridslice/src/gridslice.c +++ b/nativeLib/gridslice/src/gridslice.c @@ -29,6 +29,7 @@ * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 11/17/09 3580 brockwoo Initial Creation + * 11/19/13 2495 bclement changed dim arrays/lists to use npy_intp * * * @@ -50,7 +51,7 @@ static int dimensions(PyObject * array) { if (aDim == 3) { returnValue |= 4; // 2d arrays } else if (aDim == 2) { - npy_int * aDimList = PyArray_DIMS(array); + npy_intp * aDimList = PyArray_DIMS(array); if (aDimList[0] == 1) { returnValue |= 1; //linear array } @@ -79,9 +80,9 @@ static PyObject * defineNumpySlice(PyObject *self, PyObject* args) int * param3dDim; int levelCount; int vnz, pnz, vny , pny , vnx , pnx; - int dimSize[2]; - npy_int * vdimList; - npy_int * pdimList; + npy_intp dimSize[2]; + npy_intp * vdimList; + npy_intp * pdimList; if (!PyArg_ParseTuple(args, "OOfi", &vc, ¶m, &targetLevel, &sense)) { return NULL; @@ -211,9 +212,9 @@ static PyObject * createNumpySlice(PyObject *self, PyObject* args) int * vc3dDim ; int levelCount; float * vc2d ; - int dimSize[2]; - npy_int * vdimList; - npy_int * sdimList; + npy_intp dimSize[2]; + npy_intp * vdimList; + npy_intp * sdimList; if (!PyArg_ParseTuple(args, "OOOi|i", &vc, &s3d, &targetLevel, &sense, &hyb)) { return NULL; diff --git a/rpms/awips2.core/Installer.python/nativeLib/x86_64/gridslice.so b/rpms/awips2.core/Installer.python/nativeLib/x86_64/gridslice.so index d38fd49fb81fd530c59c0527615780657cc89686..dd68abb7465d0b026768738d4d0a526f14e2cebf 100755 GIT binary patch delta 16289 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 NxcNtZXf`bJ_