diff options
author | Mark Wiebe <mwiebe@enthought.com> | 2011-07-29 16:10:25 -0500 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2011-08-27 07:26:48 -0600 |
commit | 9bc5528f007445f5d57e2518e39209f6f6c9a5fe (patch) | |
tree | 18b1ece062385bd8ce881f801939f62ed6610c5d | |
parent | 6e99d50c75041a7432da95163d20dc879bb03e80 (diff) | |
download | numpy-9bc5528f007445f5d57e2518e39209f6f6c9a5fe.tar.gz |
BUG: missingdata: Add deallocation of the NA mask
-rw-r--r-- | numpy/core/src/multiarray/arrayobject.c | 8 | ||||
-rw-r--r-- | numpy/core/src/multiarray/na_mask.c | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/arrayobject.c b/numpy/core/src/multiarray/arrayobject.c index 987826512..f510a3dbc 100644 --- a/numpy/core/src/multiarray/arrayobject.c +++ b/numpy/core/src/multiarray/arrayobject.c @@ -355,6 +355,14 @@ array_dealloc(PyArrayObject *self) PyDataMem_FREE(fa->data); } + /* If the array has an NA mask, free its associated data */ + if (fa->flags & NPY_ARRAY_MASKNA) { + Py_DECREF(fa->maskna_dtype); + if (fa->flags & NPY_ARRAY_OWNMASKNA) { + PyDataMem_FREE(fa->maskna_data); + } + } + PyDimMem_FREE(fa->dimensions); Py_DECREF(fa->descr); Py_TYPE(self)->tp_free((PyObject *)self); diff --git a/numpy/core/src/multiarray/na_mask.c b/numpy/core/src/multiarray/na_mask.c index b7af2c824..5c67250d7 100644 --- a/numpy/core/src/multiarray/na_mask.c +++ b/numpy/core/src/multiarray/na_mask.c @@ -215,7 +215,6 @@ PyArray_AllocateMaskNA(PyArrayObject *arr, npy_bool ownmaskna, npy_bool multina) } /* Set the NA mask data in the array */ - Py_XDECREF(maskna_dtype); fa->maskna_dtype = maskna_dtype; fa->maskna_data = maskna_data; fa->flags |= (NPY_ARRAY_MASKNA | NPY_ARRAY_OWNMASKNA); |