[PD-cvs] pd/src builtins.c,1.1.2.43,1.1.2.44
Mathieu Bouchard
matju at users.sourceforge.net
Fri Jul 20 10:41:04 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17243
Modified Files:
Tag: desiredata
builtins.c
Log Message:
removed special pointer handling in [pipe]
Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.43
retrieving revision 1.1.2.44
diff -C2 -d -r1.1.2.43 -r1.1.2.44
*** builtins.c 20 Jul 2007 08:34:16 -0000 1.1.2.43
--- builtins.c 20 Jul 2007 08:41:02 -0000 1.1.2.44
***************
*** 2715,2719 ****
t_hang2 *next;
struct t_pipe *owner;
- t_gpointer *gp;
union word vec[0]; /* not the actual number of elements */
};
--- 2715,2718 ----
***************
*** 2723,2727 ****
float deltime;
t_atom *vec;
- t_gpointer *gp;
t_hang2 *hang;
};
--- 2722,2725 ----
***************
*** 2750,2754 ****
int i;
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++) {
--- 2748,2751 ----
***************
*** 2783,2790 ****
}
static void hang_free(t_hang2 *h) {
- t_pipe *x = h->owner;
- t_gpointer *gp = h->gp;
- for (int i = x->nptr; i--; gp++) gpointer_unset(gp);
- free(h->gp);
clock_free(h->clock);
free(h);
--- 2780,2783 ----
***************
*** 2819,2853 ****
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);
! if (ap->a_type != A_POINTER) post("pipe: bad pointer");
! else {
! *gp = *(ap->a_pointer);
! if (gp->o) gp->o->refcount++;
! }
! gp++;
! default:{}
! }
! }
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;
x->hang = h;
--- 2812,2822 ----
t_gpointer *gp2;
int n = x->n;
if (ac > n) ac = n;
t_atom *p = x->vec;
t_atom *ap = av;
! for (int i=0; i<ac; i++, p++, ap++) *p = *ap;
t_word *w = h->vec;
p = x->vec;
! for (int i=0; i< n; i++, p++, w++) *w = p->a_w;
h->next = x->hang;
x->hang = h;
More information about the Pd-cvs
mailing list