diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2006-06-21 11:04:51 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2006-06-21 11:04:51 +0000 |
commit | 901bc262d93286aa380e51d13fa4bc5bce564897 (patch) | |
tree | 9b7cb2fe178854b4e12ba985b5e7d6d7b5e606aa /src/blockmirror~.c | |
parent | c71afaf1f8fa3f333dc75b21ee413a1c90211d3f (diff) |
proper freeing of allocated buffers
svn path=/trunk/externals/zexy/; revision=5280
Diffstat (limited to 'src/blockmirror~.c')
-rw-r--r-- | src/blockmirror~.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/blockmirror~.c b/src/blockmirror~.c index 1dd3659..37e8cf3 100644 --- a/src/blockmirror~.c +++ b/src/blockmirror~.c @@ -72,14 +72,19 @@ static void blockmirror_dsp(t_blockmirror *x, t_signal **sp) dsp_add(blockmirror_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); } -static void blockmirror_helper(void) +static void blockmirror_helper(t_blockmirror*x) { post("\n%c blockmirror~-object for reverting a signal", HEARTSYMBOL); post("'help' : view this\n" "signal~"); post("outlet : signal~"); } - +static void blockmirror_free(t_blockmirror*x) +{ + if(x->blockbuffer) + freebytes(x->blockbuffer, sizeof(t_float)*x->blocksize); + x->blockbuffer=0; +} static void *blockmirror_new(void) { t_blockmirror *x = (t_blockmirror *)pd_new(blockmirror_class); @@ -91,8 +96,9 @@ static void *blockmirror_new(void) void blockmirror_tilde_setup(void) { - blockmirror_class = class_new(gensym("blockmirror~"), (t_newmethod)blockmirror_new, 0, - sizeof(t_blockmirror), 0, A_NULL); + blockmirror_class = class_new(gensym("blockmirror~"), (t_newmethod)blockmirror_new, + (t_method)blockmirror_free, + sizeof(t_blockmirror), 0, A_NULL); class_addmethod(blockmirror_class, nullfn, gensym("signal"), 0); class_addmethod(blockmirror_class, (t_method)blockmirror_dsp, gensym("dsp"), 0); |