Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7686
Modified Files: Tag: desiredata kernel.c Log Message: just some more reformatting.
Index: kernel.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/kernel.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** kernel.c 20 Dec 2006 08:25:53 -0000 1.1.2.5 --- kernel.c 20 Dec 2006 13:29:52 -0000 1.1.2.6 *************** *** 19,71 **** #endif
! void *getbytes(size_t nbytes) ! { void *ret; if (nbytes < 1) nbytes = 1; ret = (void *)calloc(nbytes, 1); ! if (!ret) ! post("pd: getbytes() failed -- out of memory"); ! return (ret); }
! void *copybytes(void *src, size_t nbytes) ! { void *ret; ret = getbytes(nbytes); ! if (nbytes) ! memcpy(ret, src, nbytes); ! return (ret); }
! void *resizebytes(void *old, size_t oldsize, size_t newsize) ! { void *ret; if (newsize < 1) newsize = 1; if (oldsize < 1) oldsize = 1; ret = (void *)realloc((char *)old, newsize); ! if (newsize > oldsize && ret) ! memset(((char *)ret) + oldsize, 0, newsize - oldsize); ! if (!ret) ! post("pd: resizebytes() failed -- out of memory"); ! return (ret); }
! void freebytes(void *fatso, size_t nbytes) ! { ! free(fatso); ! }
/* in the following size_t is assumed to have the same size as a pointer type !!! */
/* T.Grill - get aligned memory */ ! void *getalignedbytes(size_t nbytes) ! { /* to align the region we also need some extra memory to save the original pointer location ! it is saved immediately before the aligned vector memory ! */ void *vec = getbytes(nbytes+ (VECTORALIGNMENT/8-1)+sizeof(void *)); ! ! if (vec != NULL) ! { /* get alignment of first possible signal vector byte */ t_int alignment = ((t_int)vec+sizeof(void *))&(VECTORALIGNMENT/8-1); --- 19,57 ---- #endif
! void *getbytes(size_t nbytes) { void *ret; if (nbytes < 1) nbytes = 1; ret = (void *)calloc(nbytes, 1); ! if (!ret) post("pd: getbytes() failed -- out of memory"); ! return ret; }
! void *copybytes(void *src, size_t nbytes) { void *ret; ret = getbytes(nbytes); ! if (nbytes) memcpy(ret, src, nbytes); ! return ret; }
! void *resizebytes(void *old, size_t oldsize, size_t newsize) { void *ret; if (newsize < 1) newsize = 1; if (oldsize < 1) oldsize = 1; ret = (void *)realloc((char *)old, newsize); ! if (newsize > oldsize && ret) memset(((char *)ret) + oldsize, 0, newsize - oldsize); ! if (!ret) post("pd: resizebytes() failed -- out of memory"); ! return ret; }
! void freebytes(void *old, size_t nbytes) {free(old);}
/* in the following size_t is assumed to have the same size as a pointer type !!! */
/* T.Grill - get aligned memory */ ! void *getalignedbytes(size_t nbytes) { /* to align the region we also need some extra memory to save the original pointer location ! it is saved immediately before the aligned vector memory */ void *vec = getbytes(nbytes+ (VECTORALIGNMENT/8-1)+sizeof(void *)); ! if (vec != NULL) { /* get alignment of first possible signal vector byte */ t_int alignment = ((t_int)vec+sizeof(void *))&(VECTORALIGNMENT/8-1); *************** *** 76,118 **** return ret; } ! else ! return 0; }
/* T.Grill - free aligned vector memory */ ! void freealignedbytes(void *ptr,size_t nbytes) ! { /* get original memory location */ void *ori = *(void **)((unsigned char *)ptr-sizeof(void *)); - freebytes(ori,nbytes+(VECTORALIGNMENT/8-1)+sizeof(void *)); }
/* T.Grill - resize aligned vector memory */ ! void *resizealignedbytes(void *ptr,size_t oldsize, size_t newsize) ! { /* get original memory location */ void *ori = *(void **)((unsigned char *)ptr-sizeof(void *)); ! void *vec = resizebytes(ori,oldsize+(VECTORALIGNMENT/8-1)+sizeof(void *), ! newsize+ (VECTORALIGNMENT/8-1)+sizeof(void *)); /* get alignment of first possible signal vector byte */ t_int alignment = ((t_int)vec+sizeof(void *))&(VECTORALIGNMENT/8-1); /* calculate aligned pointer */ ! void *ret = (unsigned char *)vec+sizeof(void *)+ ! (alignment == 0?0:VECTORALIGNMENT/8-alignment); /* save original memory location */ *(void **)((unsigned char *)ret-sizeof(void *)) = vec; ! return ret; }
/* TB: copy to aligned vector memory */ ! void *copyalignedbytes(void *src, size_t nbytes) ! { void *ret; ret = getalignedbytes(nbytes); ! if (nbytes) ! memcpy(ret, src, nbytes); ! return (ret); }
--- 62,97 ---- return ret; } ! return 0; }
/* T.Grill - free aligned vector memory */ ! void freealignedbytes(void *ptr,size_t nbytes) { /* get original memory location */ void *ori = *(void **)((unsigned char *)ptr-sizeof(void *)); freebytes(ori,nbytes+(VECTORALIGNMENT/8-1)+sizeof(void *)); }
/* T.Grill - resize aligned vector memory */ ! void *resizealignedbytes(void *ptr,size_t oldsize, size_t newsize) { /* get original memory location */ void *ori = *(void **)((unsigned char *)ptr-sizeof(void *)); ! void *vec = resizebytes(ori,oldsize+(VECTORALIGNMENT/8-1)+sizeof(void *), ! newsize+(VECTORALIGNMENT/8-1)+sizeof(void *)); /* get alignment of first possible signal vector byte */ t_int alignment = ((t_int)vec+sizeof(void *))&(VECTORALIGNMENT/8-1); /* calculate aligned pointer */ ! void *ret = (unsigned char *)vec+sizeof(void *)+(alignment == 0?0:VECTORALIGNMENT/8-alignment); /* save original memory location */ *(void **)((unsigned char *)ret-sizeof(void *)) = vec; ! return ret; }
/* TB: copy to aligned vector memory */ ! void *copyalignedbytes(void *src, size_t nbytes) { void *ret; ret = getalignedbytes(nbytes); ! if (nbytes) memcpy(ret, src, nbytes); ! return ret; }
*************** *** 235,239 **** t_symbol *atom_gensym(t_atom *a) { /* this works better for graph labels */ char buf[30]; ! if (a->a_type == A_SYMBOL) return (a->a_w.w_symbol); else if (a->a_type == A_FLOAT) sprintf(buf, "%g", a->a_w.w_float); else strcpy(buf, "???"); --- 214,218 ---- t_symbol *atom_gensym(t_atom *a) { /* this works better for graph labels */ char buf[30]; ! if (a->a_type == A_SYMBOL) return a->a_w.w_symbol; else if (a->a_type == A_FLOAT) sprintf(buf, "%g", a->a_w.w_float); else strcpy(buf, "???"); *************** *** 317,326 **** hash_set(object_table,x,(void*)0); if (c->c_gobj) ((t_gobj *)x)->g_adix = appendix_new((t_gobj *)x); ! if (c->c_patchable) ! { ((t_object *)x)->ob_inlet = 0; ((t_object *)x)->ob_outlet = 0; } ! return (x); }
--- 296,304 ---- hash_set(object_table,x,(void*)0); if (c->c_gobj) ((t_gobj *)x)->g_adix = appendix_new((t_gobj *)x); ! if (c->c_patchable) { ((t_object *)x)->ob_inlet = 0; ((t_object *)x)->ob_outlet = 0; } ! return x; }
*************** *** 340,348 **** }
! void gobj_save(t_gobj *x, t_binbuf *b) ! { t_class *c = x->g_pd; ! if (c->c_savefn) ! (c->c_savefn)(x, b); }
--- 318,324 ---- }
! void gobj_save(t_gobj *x, t_binbuf *b) { t_class *c = x->g_pd; ! if (c->c_savefn) c->c_savefn(x, b); }
*************** *** 353,358 **** static t_class *bindlist_class;
! typedef struct _bindelem ! { t_pd *e_who; struct _bindelem *e_next; --- 329,333 ---- static t_class *bindlist_class;
! typedef struct _bindelem { t_pd *e_who; struct _bindelem *e_next; *************** *** 411,420 **** }
void pd_unbind(t_pd *x, t_symbol *s) { ! if (s->s_thing == x) s->s_thing = 0; ! else if (s->s_thing && *s->s_thing == bindlist_class) { ! /* bindlists always have at least two elements... if the number ! goes down to one, get rid of the bindlist and bind the symbol ! straight to the remaining element. */ t_bindlist *b = (t_bindlist *)s->s_thing; t_bindelem *e, *e2; --- 386,395 ---- }
+ /* bindlists always have at least two elements... if the number + goes down to one, get rid of the bindlist and bind the symbol + straight to the remaining element. */ void pd_unbind(t_pd *x, t_symbol *s) { ! if (s->s_thing == x) {s->s_thing = 0; return;} ! if (s->s_thing && *s->s_thing == bindlist_class) { t_bindlist *b = (t_bindlist *)s->s_thing; t_bindelem *e, *e2; *************** *** 422,427 **** b->b_list = e->e_next; freebytes(e, sizeof(t_bindelem)); ! } ! else for (e = b->b_list; (e2=e->e_next); e = e2) if (e2->e_who == x) { e->e_next = e2->e_next; freebytes(e2, sizeof(t_bindelem)); --- 397,401 ---- b->b_list = e->e_next; freebytes(e, sizeof(t_bindelem)); ! } else for (e = b->b_list; (e2=e->e_next); e = e2) if (e2->e_who == x) { e->e_next = e2->e_next; freebytes(e2, sizeof(t_bindelem)); *************** *** 438,456 **** void zz(void) {}
! t_pd *pd_findbyclass(t_symbol *s, t_class *c) ! { t_pd *x = 0; ! if (!s->s_thing) return (0); ! if (*s->s_thing == c) return (s->s_thing); ! if (*s->s_thing == bindlist_class) ! { t_bindlist *b = (t_bindlist *)s->s_thing; t_bindelem *e; int warned = 0; ! for (e = b->b_list; e; e = e->e_next) ! if (*e->e_who == c) ! { ! if (x && !warned) ! { zz(); post("warning: %s: multiply defined", s->s_name); --- 412,425 ---- void zz(void) {}
! t_pd *pd_findbyclass(t_symbol *s, t_class *c) { t_pd *x = 0; ! if (!s->s_thing) return 0; ! if (*s->s_thing == c) return s->s_thing; ! if (*s->s_thing == bindlist_class) { t_bindlist *b = (t_bindlist *)s->s_thing; t_bindelem *e; int warned = 0; ! for (e = b->b_list; e; e = e->e_next) if (*e->e_who == c) { ! if (x && !warned) { zz(); post("warning: %s: multiply defined", s->s_name); *************** *** 467,472 **** #undef g_next
! typedef struct _gstack ! { t_pd *g_what; t_symbol *g_loadingabstraction; --- 436,440 ---- #undef g_next
! typedef struct _gstack { t_pd *g_what; t_symbol *g_loadingabstraction; *************** *** 478,493 **** static t_symbol *pd_loadingabstraction;
! int pd_setloadingabstraction(t_symbol *sym) ! { t_gstack *foo = gstack_head; ! for (foo = gstack_head; foo; foo = foo->g_next) ! if (foo->g_loadingabstraction == sym) ! return (1); pd_loadingabstraction = sym; ! return (0); }
! void pd_pushsym(t_pd *x) ! { t_gstack *y = (t_gstack *)t_getbytes(sizeof(*y)); y->g_what = s__X.s_thing; --- 446,457 ---- static t_symbol *pd_loadingabstraction;
! int pd_setloadingabstraction(t_symbol *sym) { t_gstack *foo = gstack_head; ! for (foo = gstack_head; foo; foo = foo->g_next) if (foo->g_loadingabstraction == sym) return 1; pd_loadingabstraction = sym; ! return 0; }
! void pd_pushsym(t_pd *x) { t_gstack *y = (t_gstack *)t_getbytes(sizeof(*y)); y->g_what = s__X.s_thing; *************** *** 499,507 **** }
! void pd_popsym(t_pd *x) ! { if (!gstack_head || s__X.s_thing != x) bug("gstack_pop"); ! else ! { t_gstack *headwas = gstack_head; s__X.s_thing = headwas->g_what; --- 463,469 ---- }
! void pd_popsym(t_pd *x) { if (!gstack_head || s__X.s_thing != x) bug("gstack_pop"); ! else { t_gstack *headwas = gstack_head; s__X.s_thing = headwas->g_what; *************** *** 512,519 **** }
! void pd_doloadbang(void) ! { ! if (lastpopped) ! pd_vmess(lastpopped, gensym("loadbang"), ""); lastpopped = 0; } --- 474,479 ---- }
! void pd_doloadbang(void) { ! if (lastpopped) pd_vmess(lastpopped, gensym("loadbang"), ""); lastpopped = 0; } *************** *** 563,568 **** /* tb: } */
! union inletunion ! { t_symbol *iu_symto; t_gpointer *iu_pointerslot; --- 523,527 ---- /* tb: } */
! union inletunion { t_symbol *iu_symto; t_gpointer *iu_pointerslot; *************** *** 574,579 **** int sys_tooltips = 1;
! struct _inlet ! { t_pd i_pd; struct _inlet *i_next; --- 533,537 ---- int sys_tooltips = 1;
! struct _inlet { t_pd i_pd; struct _inlet *i_next; *************** *** 600,628 **** /* --------------------- generic inlets ala max ------------------ */
! t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1, t_symbol *s2) ! { t_inlet *x = (t_inlet *)pd_new(inlet_class), *y, *y2; x->i_owner = owner; x->i_dest = dest; ! if (s1 == &s_signal) ! x->i_un.iu_floatsignalvalue = 0; else x->i_symto = s2; x->i_symfrom = s1; x->i_next = 0; x->i_tip = gensym("?"); ! if (y = owner->ob_inlet) ! { while ((y2=y->i_next)) y = y2; y->i_next = x; } else owner->ob_inlet = x; ! return (x); }
! t_inlet *signalinlet_new(t_object *owner, t_float f) ! { t_inlet *x = inlet_new(owner, &owner->ob_pd, &s_signal, &s_signal); x->i_un.iu_floatsignalvalue = f; ! return (x); }
--- 558,582 ---- /* --------------------- generic inlets ala max ------------------ */
! t_inlet *inlet_new(t_object *owner, t_pd *dest, t_symbol *s1, t_symbol *s2) { t_inlet *x = (t_inlet *)pd_new(inlet_class), *y, *y2; x->i_owner = owner; x->i_dest = dest; ! if (s1 == &s_signal) x->i_un.iu_floatsignalvalue = 0; else x->i_symto = s2; x->i_symfrom = s1; x->i_next = 0; x->i_tip = gensym("?"); ! if (y = owner->ob_inlet) { while ((y2=y->i_next)) y = y2; y->i_next = x; } else owner->ob_inlet = x; ! return x; }
! t_inlet *signalinlet_new(t_object *owner, t_float f) { t_inlet *x = inlet_new(owner, &owner->ob_pd, &s_signal, &s_signal); x->i_un.iu_floatsignalvalue = f; ! return x; }
*************** *** 679,684 **** }
! void inlet_free(t_inlet *x) ! { t_object *y = x->i_owner; t_inlet *x2; --- 633,637 ---- }
! void inlet_free(t_inlet *x) { t_object *y = x->i_owner; t_inlet *x2; *************** *** 734,739 **** Before you call this check that the object doesn't have a more specific way to handle lists. */ ! void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv) ! { t_atom *ap; int count; --- 687,691 ---- Before you call this check that the object doesn't have a more specific way to handle lists. */ ! void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv) { t_atom *ap; int count; *************** *** 787,792 **** } t_wire;
! struct _outlet ! { t_object *o_owner; struct _outlet *o_next; --- 739,743 ---- } t_wire;
! struct _outlet { t_object *o_owner; struct _outlet *o_next; *************** *** 816,833 **** }
! t_outlet *outlet_new(t_object *owner, t_symbol *s) ! { t_outlet *x = (t_outlet *)getbytes(sizeof(*x)), *y, *y2; x->o_owner = owner; x->o_next = 0; ! if (y = owner->ob_outlet) ! { while (y2 = y->o_next) y = y2; y->o_next = x; ! } ! else owner->ob_outlet = x; x->o_connections = 0; x->o_sym = s; ! return (x); }
--- 767,781 ---- }
! t_outlet *outlet_new(t_object *owner, t_symbol *s) { t_outlet *x = (t_outlet *)getbytes(sizeof(*x)), *y, *y2; x->o_owner = owner; x->o_next = 0; ! if (y = owner->ob_outlet) { while (y2 = y->o_next) y = y2; y->o_next = x; ! } else owner->ob_outlet = x; x->o_connections = 0; x->o_sym = s; ! return x; }
*************** *** 1061,1071 **** if (x->ob_pd->c_firstin && x->ob_pd->c_floatsignalin) { if (!m--) ! return x->ob_pd->c_floatsignalin > 0 ? ! (t_sample *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0; n++; } for (i = x->ob_inlet; i; i = i->i_next, m--) if (i->i_symfrom == &s_signal) { ! if (m == 0) ! return (&i->i_un.iu_floatsignalvalue); n++; } --- 1009,1017 ---- if (x->ob_pd->c_firstin && x->ob_pd->c_floatsignalin) { if (!m--) ! return x->ob_pd->c_floatsignalin > 0 ? (t_sample *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0; n++; } for (i = x->ob_inlet; i; i = i->i_next, m--) if (i->i_symfrom == &s_signal) { ! if (m == 0) return &i->i_un.iu_floatsignalvalue; n++; }