Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16848
Modified Files: Tag: devel_0_39 desire.c Log Message: macros for doing casts in pd_bind pd_unbind pd_free
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.202 retrieving revision 1.1.2.203 diff -C2 -d -r1.1.2.202 -r1.1.2.203 *** desire.c 27 Nov 2006 14:06:01 -0000 1.1.2.202 --- desire.c 27 Nov 2006 23:23:24 -0000 1.1.2.203 *************** *** 82,85 **** --- 82,89 ---- t_symbol *s_empty, *s_pd, *s_Pd;
+ #define pd_free(a) pd_free((t_pd *)(a)) + #define pd_bind(a,b) pd_bind((t_pd *)(a),b) + #define pd_unbind(a,b) pd_unbind((t_pd *)(a),b) + //-------------------------------------------------------------------------- // t_appendix: an extension to t_gobj made by matju so that *************** *** 301,305 **** clock_free(self->clock); queue_free(self->q); ! pd_free((t_pd *)self); }
--- 305,309 ---- clock_free(self->clock); queue_free(self->q); ! pd_free(self); }
*************** *** 419,425 **** static void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir) { t_symbol *bs = canvas_makebindsym(x->name); ! if (x->name!=s_Pd) pd_unbind((t_pd *)x, bs); x->name = s; ! if (x->name!=s_Pd) pd_bind((t_pd *)x, bs); if (dir && dir != &s_) canvas_getenv(x)->dir = dir; gobj_changed(x,0); --- 423,429 ---- static void canvas_rename(t_canvas *x, t_symbol *s, t_symbol *dir) { t_symbol *bs = canvas_makebindsym(x->name); ! if (x->name!=s_Pd) pd_unbind(x, bs); x->name = s; ! if (x->name!=s_Pd) pd_bind(x, bs); if (dir && dir != &s_) canvas_getenv(x)->dir = dir; gobj_changed(x,0); *************** *** 527,531 **** x->owner = owner; x->name = *s->s_name ? s : canvas_newfilename ? canvas_newfilename : s_Pd; ! if (x->name != s_Pd) pd_bind((t_pd *)x, canvas_makebindsym(x->name)); x->loading = 1; x->goprect = 0; /* no GOP rectangle unless it's turned on later */ --- 531,535 ---- x->owner = owner; x->name = *s->s_name ? s : canvas_newfilename ? canvas_newfilename : s_Pd; ! if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name)); x->loading = 1; x->goprect = 0; /* no GOP rectangle unless it's turned on later */ *************** *** 598,602 **** x->font = (canvas_getcurrent() ? canvas_getcurrent()->font : sys_defaultfont); x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300; ! if (x->name != s_Pd) pd_bind((t_pd *)x, canvas_makebindsym(x->name)); x->owner = g; x->isgraph = 1; --- 602,606 ---- x->font = (canvas_getcurrent() ? canvas_getcurrent()->font : sys_defaultfont); x->screenx1 = x->screeny1 = 0; x->screenx2 = 450; x->screeny2 = 300; ! if (x->name != s_Pd) pd_bind(x, canvas_makebindsym(x->name)); x->owner = g; x->isgraph = 1; *************** *** 719,723 **** canvas_vis(x, 0); sys_mgui(x,"delete",""); ! if (x->name != s_Pd) pd_unbind((t_pd *)x, canvas_makebindsym(x->name)); if (x->env) { freebytes(x->env->argv, x->env->argc * sizeof(t_atom)); --- 723,727 ---- canvas_vis(x, 0); sys_mgui(x,"delete",""); ! if (x->name != s_Pd) pd_unbind(x,canvas_makebindsym(x->name)); if (x->env) { freebytes(x->env->argv, x->env->argc * sizeof(t_atom)); *************** *** 1253,1257 ****
void canvas_close(t_canvas *x) { ! if (x->owner) canvas_vis(x, 0); else pd_free((t_pd *)x); }
--- 1257,1261 ----
void canvas_close(t_canvas *x) { ! if (x->owner) canvas_vis(x, 0); else pd_free(x); }
*************** *** 1369,1375 ****
static void canvas_restoreconnections(t_canvas *x) { ! pd_bind((t_pd *)x, gensym("#X")); binbuf_eval(x->connectbuf, 0, 0, 0); ! pd_unbind((t_pd *)x, gensym("#X")); }
--- 1373,1379 ----
static void canvas_restoreconnections(t_canvas *x) { ! pd_bind(x,gensym("#X")); binbuf_eval(x->connectbuf, 0, 0, 0); ! pd_unbind(x,gensym("#X")); }
*************** *** 1528,1532 **** x->realname = s; x->realname = canvas_realizedollar(gl, s); ! pd_bind(&x->x_gobj.g_pd, x->realname); x->usedindsp = 0; x->saveit = saveit; --- 1532,1536 ---- x->realname = s; x->realname = canvas_realizedollar(gl, s); ! pd_bind(x,x->realname); x->usedindsp = 0; x->saveit = saveit; *************** *** 1629,1634 **** template_setfloat(t, gensym("linewidth"), x->scalar->sc_vec, style==PLOTSTYLE_POINTS?2:1, 1); t_pd *x2 = pd_findbyclass(gensym("#A"), garray_class); ! if (x2) pd_unbind(x2, gensym("#A")); ! pd_bind(&x->x_gobj.g_pd, gensym("#A")); garray_redraw(x); return x; --- 1633,1638 ---- template_setfloat(t, gensym("linewidth"), x->scalar->sc_vec, style==PLOTSTYLE_POINTS?2:1, 1); t_pd *x2 = pd_findbyclass(gensym("#A"), garray_class); ! if (x2) pd_unbind(x2,gensym("#A")); ! pd_bind(x,gensym("#A")); garray_redraw(x); return x; *************** *** 1682,1688 **** if (x->listviewing) garray_arrayviewlist_close(x); x->realname = argname; ! pd_unbind(&x->x_gobj.g_pd, x->realname); x->realname = canvas_realizedollar(x->canvas, argname); ! pd_bind(&x->x_gobj.g_pd, x->realname); /* redraw the whole canvas, just so the name change shows up */ if (x->canvas->havewindow) canvas_redraw(x->canvas); --- 1686,1692 ---- if (x->listviewing) garray_arrayviewlist_close(x); x->realname = argname; ! pd_unbind(x,x->realname); x->realname = canvas_realizedollar(x->canvas, argname); ! pd_bind(x,x->realname); /* redraw the whole canvas, just so the name change shows up */ if (x->canvas->havewindow) canvas_redraw(x->canvas); *************** *** 1737,1744 **** if (x->listviewing) garray_arrayviewlist_close(x); gfxstub_deleteforkey(x); ! pd_unbind(&x->x_gobj.g_pd, x->realname); /* LATER find a way to get #A unbound earlier (at end of load?) */ while ((x2 = pd_findbyclass(gensym("#A"), garray_class))) pd_unbind(x2, gensym("#A")); ! pd_free(&x->scalar->sc_gobj.g_pd); }
--- 1741,1748 ---- if (x->listviewing) garray_arrayviewlist_close(x); gfxstub_deleteforkey(x); ! pd_unbind(x,x->realname); /* LATER find a way to get #A unbound earlier (at end of load?) */ while ((x2 = pd_findbyclass(gensym("#A"), garray_class))) pd_unbind(x2, gensym("#A")); ! pd_free(x); }
*************** *** 2141,2146 **** static void garray_rename(t_garray *x, t_symbol *s) { if (x->listviewing) garray_arrayviewlist_close(x); ! pd_unbind(&x->x_gobj.g_pd, x->realname); ! pd_bind(&x->x_gobj.g_pd, x->realname = x->realname = s); garray_redraw(x); } --- 2145,2151 ---- static void garray_rename(t_garray *x, t_symbol *s) { if (x->listviewing) garray_arrayviewlist_close(x); ! pd_unbind(x,x->realname); ! x->realname = s; ! pd_bind(x,x->realname); garray_redraw(x); } *************** *** 2314,2318 **** canvas_each(g,x) if (g->g_next == y) {g->g_next = y->g_next; break;} } ! pd_free(&y->g_pd); if (chkdsp) canvas_update_dsp(); if (drawcommand) --- 2319,2323 ---- canvas_each(g,x) if (g->g_next == y) {g->g_next = y->g_next; break;} } ! pd_free(y); if (chkdsp) canvas_update_dsp(); if (drawcommand) *************** *** 2711,2715 **** x->who = who; x->sym = sym; ! pd_bind((t_pd *)x, sym); return x; } --- 2716,2720 ---- x->who = who; x->sym = sym; ! pd_bind(x,sym); return x; } *************** *** 2717,2726 **** /* cleanup routine; delete any resources we have */ static void guiconnect_free(t_guiconnect *x) { ! if (x->sym) pd_unbind((t_pd *)x, x->sym); if (x->clock) clock_free(x->clock); }
/* this is called when the clock times out to indicate the GUI should be gone by now. */ ! static void guiconnect_tick(t_guiconnect *x) {pd_free(&x->o.ob_pd);}
/* the target calls this to disconnect. If the gui has "signed off" --- 2722,2731 ---- /* cleanup routine; delete any resources we have */ static void guiconnect_free(t_guiconnect *x) { ! if (x->sym) pd_unbind(x,x->sym); if (x->clock) clock_free(x->clock); }
/* this is called when the clock times out to indicate the GUI should be gone by now. */ ! static void guiconnect_tick(t_guiconnect *x) {pd_free(x);}
/* the target calls this to disconnect. If the gui has "signed off" *************** *** 2728,2732 **** or for a timeout. */ static void guiconnect_notarget(t_guiconnect *x, double timedelay) { ! if (!x->sym) pd_free((t_pd *)x); else { x->who = 0; --- 2733,2737 ---- or for a timeout. */ static void guiconnect_notarget(t_guiconnect *x, double timedelay) { ! if (!x->sym) pd_free(x); else { x->who = 0; *************** *** 2747,2753 **** a timeout after which the guiconnect will disappear.) */ static void guiconnect_signoff(t_guiconnect *x) { ! if (!x->who) pd_free((t_pd *)x); else { ! pd_unbind((t_pd *)x, x->sym); x->sym = 0; } --- 2752,2758 ---- a timeout after which the guiconnect will disappear.) */ static void guiconnect_signoff(t_guiconnect *x) { ! if (!x->who) pd_free(x); else { ! pd_unbind(x,x->sym); x->sym = 0; } *************** *** 4029,4033 **** if (templatesym->s_name) { x->sym = templatesym; ! pd_bind(&x->t_pdobj, x->sym); } else x->sym = templatesym; --- 4034,4038 ---- if (templatesym->s_name) { x->sym = templatesym; ! pd_bind(x,x->sym); } else x->sym = templatesym; *************** *** 4145,4149 **** nobug: ; } ! pd_free((t_pd *)scfrom); scalartemplate = tto; } else { --- 4150,4154 ---- nobug: ; } ! pd_free(scfrom); scalartemplate = tto; } else { *************** *** 4293,4301 **** } else { template_conform(x, y); ! pd_free(&x->t_pdobj); template_new(templatesym, argc, argv); } } ! pd_free(&y->t_pdobj); } else template_new(templatesym, argc, argv); return 0; --- 4298,4306 ---- } else { template_conform(x, y); ! pd_free(x); template_new(templatesym, argc, argv); } } ! pd_free(y); } else template_new(templatesym, argc, argv); return 0; *************** *** 4304,4308 **** /* here we assume someone has already cleaned up all instances of this. */ void template_free(t_template *x) { ! if (*x->sym->s_name) pd_unbind(&x->t_pdobj, x->sym); t_freebytes(x->vec, x->n * sizeof(*x->vec)); } --- 4309,4313 ---- /* here we assume someone has already cleaned up all instances of this. */ void template_free(t_template *x) { ! if (*x->sym->s_name) pd_unbind(x,x->sym); t_freebytes(x->vec, x->n * sizeof(*x->vec)); } *************** *** 4344,4351 **** /* conform everyone to the new template */ template_conform(t, y); ! pd_free(&t->t_pdobj); t = template_new(sym, argc, argv); } ! pd_free(&y->t_pdobj); t->t_list = x; canvas_redrawallfortemplate(t, 1); --- 4349,4356 ---- /* conform everyone to the new template */ template_conform(t, y); ! pd_free(t); t = template_new(sym, argc, argv); } ! pd_free(y); t->t_list = x; canvas_redrawallfortemplate(t, 1); *************** *** 4390,4395 **** t_template *z = template_new(&s_, x->argc, x->argv); template_conform(t, z); ! pd_free(&t->t_pdobj); ! pd_free(&z->t_pdobj); z = template_new(x->sym, x->argc, x->argv); z->t_list = x->x_next; --- 4395,4400 ---- t_template *z = template_new(&s_, x->argc, x->argv); template_conform(t, z); ! pd_free(t); ! pd_free(z); z = template_new(x->sym, x->argc, x->argv); z->t_list = x->x_next; *************** *** 6283,6289 **** x->te_width = width; x->wherelabel = (int)wherelabel&3; ! if (*x->rcv->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->canvas, x->rcv)); x->rcv = rcv; ! if (*x->rcv->s_name) pd_bind( (t_pd *)x, canvas_realizedollar(x->canvas, x->rcv)); x->snd = snd; x->expanded_to = canvas_realizedollar(x->canvas, x->snd); --- 6288,6294 ---- x->te_width = width; x->wherelabel = (int)wherelabel&3; ! if (*x->rcv->s_name) pd_unbind(x, canvas_realizedollar(x->canvas, x->rcv)); x->rcv = rcv; ! if (*x->rcv->s_name) pd_bind( x, canvas_realizedollar(x->canvas, x->rcv)); x->snd = snd; x->expanded_to = canvas_realizedollar(x->canvas, x->snd); *************** *** 6318,6322 ****
static void gatom_free(t_gatom *x) { ! if (*x->rcv->s_name) pd_unbind((t_pd *)x, canvas_realizedollar(x->canvas, x->rcv)); gfxstub_deleteforkey(x); } --- 6323,6327 ----
static void gatom_free(t_gatom *x) { ! if (*x->rcv->s_name) pd_unbind(x, canvas_realizedollar(x->canvas, x->rcv)); gfxstub_deleteforkey(x); } *************** *** 6507,6513 **** if (rcv==s_empty) rcv=0; if (rcv==x->rcv) return; ! if(x->rcv) pd_unbind((t_pd *)x, x->rcv); x->rcv = rcv; ! if(rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,"rcv"); } --- 6512,6518 ---- if (rcv==s_empty) rcv=0; if (rcv==x->rcv) return; ! if(x->rcv) pd_unbind(x,x->rcv); x->rcv = rcv; ! if(x->rcv) pd_bind(x,x->rcv); gobj_changed(x,"rcv"); } *************** *** 6785,6789 **** x->fcol = 0x000000; x->lcol = 0x000000; ! pd_bind((t_pd *)x,pd_makebindsym((t_pd *)x)); return x; } --- 6790,6794 ---- x->fcol = 0x000000; x->lcol = 0x000000; ! pd_bind(x,pd_makebindsym((t_pd *)x)); return x; } *************** *** 6874,6878 **** bng_check_minmax(x); iemgui_constrain(x); ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 6879,6883 ---- bng_check_minmax(x); iemgui_constrain(x); ! if (x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 6890,6894 ****
static void iemgui_free(t_iemgui *x) { ! if(x->rcv) pd_unbind((t_pd *)x, x->rcv); gfxstub_deleteforkey(x); } --- 6895,6899 ----
static void iemgui_free(t_iemgui *x) { ! if(x->rcv) pd_unbind(x,x->rcv); gfxstub_deleteforkey(x); } *************** *** 6963,6967 **** if (!x->nonzero) x->nonzero=1.0; iemgui_constrain(x); ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 6968,6972 ---- if (!x->nonzero) x->nonzero=1.0; iemgui_constrain(x); ! if (x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7094,7098 **** if (!radio_pickle(x,&foo)) return; iemgui_constrain(x); ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 7099,7103 ---- if (!radio_pickle(x,&foo)) return; iemgui_constrain(x); ! if (x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7228,7232 **** slider_check_minmax(x); slider_check_width(x, isvert(x) ? x->h : x->w); ! if(x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 7233,7237 ---- slider_check_minmax(x); slider_check_width(x, isvert(x) ? x->h : x->w); ! if(x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7346,7350 **** nbcheck_minmax(x); x->w = MAX(x->w,1); ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 7351,7355 ---- nbcheck_minmax(x); x->w = MAX(x->w,1); ! if (x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7452,7456 **** if (!vu_pickle(x,&foo)) return; iemgui_constrain(x); ! if(x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 7457,7461 ---- if (!vu_pickle(x,&foo)) return; iemgui_constrain(x); ! if(x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7524,7528 **** x->at[0].a_type = x->at[1].a_type = A_FLOAT; //??? iemgui_constrain(x); ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); gobj_changed(x,0); } --- 7529,7533 ---- x->at[0].a_type = x->at[1].a_type = A_FLOAT; //??? iemgui_constrain(x); ! if (x->rcv) pd_bind(x,x->rcv); gobj_changed(x,0); } *************** *** 7581,7585 **** if (!dropper_pickle(x,&foo)) return; x->h = x->w; ! if (x->rcv) pd_bind((t_pd *)x, x->rcv); iemgui_constrain(x); gobj_changed(x,0); --- 7586,7590 ---- if (!dropper_pickle(x,&foo)) return; x->h = x->w; ! if (x->rcv) pd_bind(x,x->rcv); iemgui_constrain(x); gobj_changed(x,0);