From b055b4ec0a94cd0cf9ffa051ef46acd6588df831 Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Fri, 29 Apr 2016 21:57:35 +0200 Subject: [PATCH] python/ext/py-filterbank.c: use new_py_fvec --- python/ext/py-filterbank.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/python/ext/py-filterbank.c b/python/ext/py-filterbank.c index ed1d630e..4dbb1752 100644 --- a/python/ext/py-filterbank.c +++ b/python/ext/py-filterbank.c @@ -11,7 +11,8 @@ typedef struct cvec_t vec; fvec_t freqs; fmat_t coeffs; - fvec_t *out; + PyObject *out; + fvec_t c_out; } Py_filterbank; static PyObject * @@ -64,7 +65,7 @@ Py_filterbank_init (Py_filterbank * self, PyObject * args, PyObject * kwds) PyErr_SetString (PyExc_RuntimeError, errstr); return -1; } - self->out = new_fvec(self->n_filters); + self->out = new_py_fvec(self->n_filters); return 0; } @@ -73,7 +74,7 @@ static void Py_filterbank_del (Py_filterbank *self, PyObject *unused) { del_aubio_filterbank(self->o); - del_fvec(self->out); + Py_DECREF(self->out); free(self->coeffs.data); Py_TYPE(self)->tp_free((PyObject *) self); } @@ -91,9 +92,13 @@ Py_filterbank_do(Py_filterbank * self, PyObject * args) return NULL; } + Py_INCREF(self->out); + if (!PyAubio_ArrayToCFvec(self->out, &(self->c_out))) { + return NULL; + } // compute the function - aubio_filterbank_do (self->o, &(self->vec), self->out); - return (PyObject *)PyAubio_CFvecToArray(self->out); + aubio_filterbank_do (self->o, &(self->vec), &(self->c_out)); + return self->out; } static PyMemberDef Py_filterbank_members[] = { -- 2.11.0