From c06087f322d92c890df29b9219fe8701c1feca4b Mon Sep 17 00:00:00 2001 From: Franz Zotter Date: Sat, 25 Aug 2007 09:27:45 +0000 Subject: corrected malfunction in mtx_max2 and mtx_min2 and added some security to mtx_rowr(i)fft svn path=/trunk/externals/iem/iemmatrix/; revision=8687 --- src/mtx_max2.c | 6 ++++-- src/mtx_min2.c | 6 ++++-- src/mtx_rowrfft.c | 12 ++++++++---- src/mtx_rowrifft.c | 12 ++++++++---- 4 files changed, 24 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mtx_max2.c b/src/mtx_max2.c index 21aa455..6e1c044 100644 --- a/src/mtx_max2.c +++ b/src/mtx_max2.c @@ -36,7 +36,8 @@ static void mtx_max2scalar_matrix(t_mtx_binscalar *x, t_symbol *s, int argc, t_a while(n--){ buf->a_type = A_FLOAT; - buf++->a_w.w_float = atom_getfloat(ap++) + offset; + buf++->a_w.w_float = (atom_getfloat(ap)x_obj.ob_outlet, gensym("matrix"), argc, x->m.atombuffer); } @@ -50,7 +51,8 @@ static void mtx_max2scalar_list(t_mtx_binscalar *x, t_symbol *s, int argc, t_ato while(n--){ m->a_type = A_FLOAT; - (m++)->a_w.w_float = atom_getfloat(argv++) + offset; + (m++)->a_w.w_float = (atom_getfloat(argv)x_obj.ob_outlet, gensym("list"), argc, x->m.atombuffer); } diff --git a/src/mtx_min2.c b/src/mtx_min2.c index 8fc17e1..6282f60 100644 --- a/src/mtx_min2.c +++ b/src/mtx_min2.c @@ -36,7 +36,8 @@ static void mtx_min2scalar_matrix(t_mtx_binscalar *x, t_symbol *s, int argc, t_a while(n--){ buf->a_type = A_FLOAT; - buf++->a_w.w_float = atom_getfloat(ap++) + offset; + buf++->a_w.w_float = (atom_getfloat(ap)x_obj.ob_outlet, gensym("matrix"), argc, x->m.atombuffer); } @@ -50,7 +51,8 @@ static void mtx_min2scalar_list(t_mtx_binscalar *x, t_symbol *s, int argc, t_ato while(n--){ m->a_type = A_FLOAT; - (m++)->a_w.w_float = atom_getfloat(argv++) + offset; + (m++)->a_w.w_float = (atom_getfloat(argv)x_obj.ob_outlet, gensym("list"), argc, x->m.atombuffer); } diff --git a/src/mtx_rowrfft.c b/src/mtx_rowrfft.c index daa1f3f..7745f55 100644 --- a/src/mtx_rowrfft.c +++ b/src/mtx_rowrfft.c @@ -36,10 +36,14 @@ struct _MTXRowrfft_ static void deleteMTXRowrfft (MTXRowrfft *x) { - free (x->f_re); - free (x->f_im); - free (x->list_re); - free (x->list_im); + if (x->f_re) + free (x->f_re); + if (x->f_im) + free (x->f_im); + if (x->list_re) + free (x->list_re); + if (x->list_im) + free (x->list_im); } static void *newMTXRowrfft (t_symbol *s, int argc, t_atom *argv) diff --git a/src/mtx_rowrifft.c b/src/mtx_rowrifft.c index ea803da..d8d6530 100644 --- a/src/mtx_rowrifft.c +++ b/src/mtx_rowrifft.c @@ -200,10 +200,14 @@ static void mTXrowrifftBang (MTXRowrifft *x) static void deleteMTXRowrifft (MTXRowrifft *x) { - free(x->f_re); - free(x->f_im); - free(x->list_re); - free(x->list_im); + if (x->f_re) + free(x->f_re); + if (x->f_im) + free(x->f_im); + if (x->list_re) + free(x->list_re); + if (x->list_im) + free(x->list_im); } static void mtx_rowrifft_setup (void) -- cgit v1.2.1