[PD-cvs] pd/src builtins.c,1.1.2.34,1.1.2.35
Mathieu Bouchard
matju at users.sourceforge.net
Thu Jul 19 17:38:50 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16127
Modified Files:
Tag: desiredata
builtins.c
Log Message:
cleanup
Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.34
retrieving revision 1.1.2.35
diff -C2 -d -r1.1.2.34 -r1.1.2.35
*** builtins.c 19 Jul 2007 05:14:02 -0000 1.1.2.34
--- builtins.c 19 Jul 2007 15:38:48 -0000 1.1.2.35
***************
*** 620,624 ****
list append - append a list to another
list prepend - prepend a list to another
! list split - first n elements to first outlet, rest to second outlet
list trim - trim off "list" selector
list length - output number of items in list
--- 620,624 ----
list append - append a list to another
list prepend - prepend a list to another
! list split - first n elements to first outlet, rest to second outlet
list trim - trim off "list" selector
list length - output number of items in list
***************
*** 2904,2911 ****
struct t_pipe *owner;
t_gpointer *gp;
! union word vec[1]; /* not the actual number. */
! };
! struct t_pipeout {
! t_atom a;
};
struct t_pipe : t_object {
--- 2904,2908 ----
struct t_pipe *owner;
t_gpointer *gp;
! union word vec[0]; /* not the actual number of elements */
};
struct t_pipe : t_object {
***************
*** 2913,2917 ****
int nptr;
float deltime;
! t_pipeout *vec;
t_gpointer *gp;
t_hang2 *hang;
--- 2910,2914 ----
int nptr;
float deltime;
! t_atom *vec;
t_gpointer *gp;
t_hang2 *hang;
***************
*** 2920,2924 ****
t_pipe *x = (t_pipe *)pd_new(pipe_class);
t_atom defarg, *ap;
! t_pipeout *vec, *vp;
t_gpointer *gp;
int nptr = 0;
--- 2917,2921 ----
t_pipe *x = (t_pipe *)pd_new(pipe_class);
t_atom defarg, *ap;
! t_atom *vec, *vp;
t_gpointer *gp;
int nptr = 0;
***************
*** 2941,2964 ****
}
x->n = argc;
! vec = x->vec = (t_pipeout *)getbytes(argc * sizeof(*x->vec));
! for (i = argc, ap = argv; i--; ap++)
! if (ap->a_type == A_SYMBOL && *ap->a_symbol->name == 'p')
! nptr++;
! gp = x->gp = (t_gpointer *)t_getbytes(nptr * sizeof (*gp));
x->nptr = nptr;
for (i = 0, vp = vec, ap = argv; i < argc; i++, ap++, vp++) {
if (ap->a_type == A_FLOAT) {
! vp->a = *ap;
outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a.a_float);
} else if (ap->a_type == A_SYMBOL) {
char c = *ap->a_symbol->name;
if (c == 's') {
! SETSYMBOL(&vp->a, &s_symbol);
outlet_new(x, &s_symbol);
! if (i) symbolinlet_new(x, &vp->a.a_symbol);
} else if (c == 'p') {
! vp->a.a_type = A_POINTER;
! vp->a.a_w.w_gpointer = gp;
gpointer_init(gp);
outlet_new(x, &s_pointer);
--- 2938,2959 ----
}
x->n = argc;
! vec = x->vec = (t_atom *)getbytes(argc * sizeof(*x->vec));
! for (i = argc, ap = argv; i--; ap++) if (ap->a_type == A_SYMBOL && *ap->a_symbol->name == 'p') nptr++;
! gp = x->gp = (t_gpointer *)t_getbytes(nptr * sizeof(*gp));
x->nptr = nptr;
for (i = 0, vp = vec, ap = argv; i < argc; i++, ap++, vp++) {
if (ap->a_type == A_FLOAT) {
! *vp = *ap;
outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a_float);
} else if (ap->a_type == A_SYMBOL) {
char c = *ap->a_symbol->name;
if (c == 's') {
! SETSYMBOL(vp, &s_symbol);
outlet_new(x, &s_symbol);
! if (i) symbolinlet_new(x, &vp->a_symbol);
} else if (c == 'p') {
! vp->a_type = A_POINTER;
! vp->a_w.w_gpointer = gp;
gpointer_init(gp);
outlet_new(x, &s_pointer);
***************
*** 2967,2973 ****
} else {
if (c != 'f') error("pack: %s: bad type", ap->a_symbol->name);
! SETFLOAT(&vp->a, 0);
outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a.a_float);
}
}
--- 2962,2968 ----
} else {
if (c != 'f') error("pack: %s: bad type", ap->a_symbol->name);
! SETFLOAT(vp,0);
outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a_float);
}
}
***************
*** 2996,3003 ****
}
}
! t_pipeout *p = x->vec + (x->n - 1);
union word *w = h->vec + (x->n - 1);
for (int i = x->n; i--; p--, w--) {
! switch (p->a.a_type) {
case A_FLOAT: outlet_float( x->out(i),w->w_float); break;
case A_SYMBOL: outlet_symbol(x->out(i),w->w_symbol); break;
--- 2991,2998 ----
}
}
! t_atom *p = x->vec + (x->n - 1);
union word *w = h->vec + (x->n - 1);
for (int i = x->n; i--; p--, w--) {
! switch (p->a_type) {
case A_FLOAT: outlet_float( x->out(i),w->w_float); break;
case A_SYMBOL: outlet_symbol(x->out(i),w->w_symbol); break;
***************
*** 3013,3027 ****
static void pipe_list(t_pipe *x, t_symbol *s, int ac, t_atom *av) {
t_hang2 *h = (t_hang2 *)getbytes(sizeof(*h) + (x->n - 1) * sizeof(*h->vec));
! t_gpointer *gp, *gp2;
! t_pipeout *p;
! int i, n = x->n;
! t_atom *ap;
! t_word *w;
h->gp = (t_gpointer *)getbytes(x->nptr * sizeof(t_gpointer));
if (ac > n) ac = n;
! for (i = 0, gp = x->gp, p = x->vec, ap = av; i < ac; i++, p++, ap++) {
! switch (p->a.a_type) {
! case A_FLOAT: p->a.a_float = atom_getfloat(ap); break;
! case A_SYMBOL: p->a.a_symbol = atom_getsymbol(ap); break;
case A_POINTER:
gpointer_unset(gp);
--- 3008,3022 ----
static void pipe_list(t_pipe *x, t_symbol *s, int ac, t_atom *av) {
t_hang2 *h = (t_hang2 *)getbytes(sizeof(*h) + (x->n - 1) * sizeof(*h->vec));
! t_gpointer *gp2;
! int n = x->n;
h->gp = (t_gpointer *)getbytes(x->nptr * sizeof(t_gpointer));
if (ac > n) ac = n;
! t_atom *p = x->vec;
! t_atom *ap = av;
! t_gpointer *gp = x->gp;
! for (int i=0; i<ac; i++, p++, ap++) {
! switch (p->a_type) {
! case A_FLOAT: p->a_float = atom_getfloat(ap); break;
! case A_SYMBOL: p->a_symbol = atom_getsymbol(ap); break;
case A_POINTER:
gpointer_unset(gp);
***************
*** 3035,3044 ****
}
}
! for (i = 0, gp = x->gp, gp2 = h->gp, p = x->vec, w = h->vec; i < n; i++, p++, w++) {
! if (p->a.a_type == A_POINTER) {
if (gp->o) gp->o->refcount++;
w->w_gpointer = gp2;
*gp2++ = *gp++;
! } else *w = p->a.a_w;
}
h->next = x->hang;
--- 3030,3043 ----
}
}
! t_word *w = h->vec;
! gp = x->gp;
! gp2 = h->gp;
! p = x->vec;
! for (int i=0; i<n; i++, p++, w++) {
! if (p->a_type == A_POINTER) {
if (gp->o) gp->o->refcount++;
w->w_gpointer = gp2;
*gp2++ = *gp++;
! } else *w = p->a_w;
}
h->next = x->hang;
More information about the Pd-cvs
mailing list