From: Paul Brossier Date: Fri, 29 Apr 2016 19:57:35 +0000 (+0200) Subject: python/ext/py-filterbank.c: use new_py_fvec X-Git-Tag: 0.4.4~300^2~190 X-Git-Url: https://git.aubio.org/?a=commitdiff_plain;h=b055b4ec0a94cd0cf9ffa051ef46acd6588df831;p=aubio.git python/ext/py-filterbank.c: use new_py_fvec --- 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[] = {