Update of /cvsroot/pure-data/externals/mrpeach/osc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6866
Modified Files: pipelist.c Log Message: Negative and zero delays now cause lists to pass straight through without clock_delay and memory allocation/copying.
Index: pipelist.c =================================================================== RCS file: /cvsroot/pure-data/externals/mrpeach/osc/pipelist.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pipelist.c 11 Jul 2007 19:44:32 -0000 1.1 --- pipelist.c 12 Jul 2007 15:20:27 -0000 1.2 *************** *** 85,101 **** static void pipelist_list(t_pipelist *x, t_symbol *s, int ac, t_atom *av) { ! t_hang *h = (t_hang *)getbytes(sizeof(t_hang)); ! int i;
! h->h_n = ac; ! h->h_atoms = (t_atom *)getbytes(h->h_n*sizeof(t_atom));
! for (i = 0; i < h->h_n; ++i) ! h->h_atoms[i] = av[i]; ! h->h_next = x->x_hang; ! x->x_hang = h; ! h->h_owner = x; ! h->h_clock = clock_new(h, (t_method)pipelist_hang_tick); ! clock_delay(h->h_clock, (x->x_deltime >= 0 ? x->x_deltime : 0)); }
--- 85,107 ---- static void pipelist_list(t_pipelist *x, t_symbol *s, int ac, t_atom *av) { ! if (x->x_deltime > 0) ! { /* if delay is real, save the list for output in delay milliseconds */ ! t_hang *h; ! int i;
! h = (t_hang *)getbytes(sizeof(t_hang)); ! h->h_n = ac; ! h->h_atoms = (t_atom *)getbytes(h->h_n*sizeof(t_atom));
! for (i = 0; i < h->h_n; ++i) ! h->h_atoms[i] = av[i]; ! h->h_next = x->x_hang; ! x->x_hang = h; ! h->h_owner = x; ! h->h_clock = clock_new(h, (t_method)pipelist_hang_tick); ! clock_delay(h->h_clock, (x->x_deltime >= 0 ? x->x_deltime : 0)); ! } ! /* otherwise just pass the list straight through */ ! else outlet_list(x->x_pipelistout, &s_list, ac, av); }