From: Paul Brossier Date: Sun, 30 Dec 2018 14:24:23 +0000 (+0100) Subject: [fmat] ensure contiguous memory X-Git-Url: https://git.aubio.org/?a=commitdiff_plain;h=e11c14d431b6d0c8fccb603004270fb4ed36708f;p=aubio.git [fmat] ensure contiguous memory --- diff --git a/src/fmat.c b/src/fmat.c index 9ed32902..f663a037 100644 --- a/src/fmat.c +++ b/src/fmat.c @@ -23,7 +23,7 @@ fmat_t * new_fmat (uint_t height, uint_t length) { fmat_t * s; - uint_t i,j; + uint_t i; if ((sint_t)length <= 0 || (sint_t)height <= 0 ) { return NULL; } @@ -31,21 +31,19 @@ fmat_t * new_fmat (uint_t height, uint_t length) { s->height = height; s->length = length; s->data = AUBIO_ARRAY(smpl_t*,s->height); - for (i=0; i< s->height; i++) { - s->data[i] = AUBIO_ARRAY(smpl_t, s->length); - for (j=0; j< s->length; j++) { - s->data[i][j]=0.; - } + s->data[0] = AUBIO_ARRAY(smpl_t, s->length * s->height); + for (i=1; i< s->height; i++) { + s->data[i] = s->data[0] + i * s->length; } return s; } void del_fmat (fmat_t *s) { - uint_t i; - for (i=0; iheight; i++) { - AUBIO_FREE(s->data[i]); - } - AUBIO_FREE(s->data); + AUBIO_ASSERT(s); + if (s->data[0]) + AUBIO_FREE(s->data[0]); + if (s->data) + AUBIO_FREE(s->data); AUBIO_FREE(s); }