Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6354
Modified Files: Tag: desiredata desire.c desire.h Log Message: another subpatch deletion fix
Index: desire.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v retrieving revision 1.1.2.49.2.43 retrieving revision 1.1.2.49.2.44 diff -C2 -d -r1.1.2.49.2.43 -r1.1.2.49.2.44 *** desire.h 15 Aug 2007 21:19:28 -0000 1.1.2.49.2.43 --- desire.h 15 Aug 2007 23:34:07 -0000 1.1.2.49.2.44 *************** *** 337,341 **** #endif
! #define L post("%s:%d in %s",__FILE__,__LINE__,__PRETTY_FUNCTION__); #define LS printf("%s:%d in %s (self=%lx\n",__FILE__,__LINE__,__PRETTY_FUNCTION__,(long)self);\ printf("class=%s)\n",((t_gobj *)self)->_class->c_name->name); --- 337,341 ---- #endif
! #define L printf("%s:%d in %s\n",__FILE__,__LINE__,__PRETTY_FUNCTION__); #define LS printf("%s:%d in %s (self=%lx\n",__FILE__,__LINE__,__PRETTY_FUNCTION__,(long)self);\ printf("class=%s)\n",((t_gobj *)self)->_class->c_name->name);
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.217.2.211 retrieving revision 1.1.2.217.2.212 diff -C2 -d -r1.1.2.217.2.211 -r1.1.2.217.2.212 *** desire.c 15 Aug 2007 21:26:16 -0000 1.1.2.217.2.211 --- desire.c 15 Aug 2007 23:34:04 -0000 1.1.2.217.2.212 *************** *** 49,53 ****
#undef SET ! #define SET(attr,value) gobj_changed(x,#attr), x->attr = (value)
#define a_float a_w.w_float --- 49,53 ----
#undef SET ! #define SET(attr,value) do {gobj_changed(x,#attr); x->attr = (value);} while(0)
#define a_float a_w.w_float *************** *** 139,142 **** --- 139,143 ---- d->nobs--; for (; i<d->nobs; i++) d->obs[i] = d->obs[i+1]; + // should have something like onunsubscribe too, to handle delete?... or just use onsubscribe differently. }
*************** *** 158,161 **** --- 159,163 ---- gobj_changed3(self,self,1,argv); } + #define gobj_changed(SELF,K) do {L; gobj_changed(SELF,K);} while(0)
// if only a float is sent, it's a bitset of at most 25 elements *************** *** 307,310 **** --- 309,315 ---- t_manager *self = (t_manager *)self_; if (!self->dirty->exists(origin)) { + //std::cerr << "manager_notice:"; + //for (int i=0; i<argc; i++) std::cerr << " " << &argv[i]; + //std::cerr << "\n"; queue_put(self->q,origin); self->dirty->set(origin,0); *************** *** 1977,1981 **** y2->g_next = y; } - gobj_changed(x,"children"); if (x->gop && !x->goprect && pd_checkobject(y)) SET(goprect,1); if (class_isdrawcommand(y->_class)) --- 1982,1985 ---- *************** *** 1995,1998 **** --- 1999,2003 ---- canvas_each(g,x) if (g->g_next == y) {g->g_next = y->g_next; break;} } + /* BUG: should call gobj_onsubscribe here, to flush the zombie */ pd_free(y); if (chkdsp) canvas_update_dsp(); *************** *** 2088,2096 **** static void canvas_rminlet(t_canvas *x, t_inlet *ip) { if (x->owner) canvas_deletelinesforio(x->owner,x,ip,0); ! inlet_free(ip); gobj_changed(x,0); } static void canvas_rmoutlet(t_canvas *x, t_outlet *op) { if (x->owner) canvas_deletelinesforio(x->owner,x,0,op); ! outlet_free(op); gobj_changed(x,0); }
--- 2093,2101 ---- static void canvas_rminlet(t_canvas *x, t_inlet *ip) { if (x->owner) canvas_deletelinesforio(x->owner,x,ip,0); ! inlet_free(ip); /*gobj_changed(x,0);*/ } static void canvas_rmoutlet(t_canvas *x, t_outlet *op) { if (x->owner) canvas_deletelinesforio(x->owner,x,0,op); ! outlet_free(op); /*gobj_changed(x,0);*/ }
*************** *** 5584,5588 **** fprintf(stderr,"canvas_object_delete %p\n",o); canvas_delete(x,o); - gobj_changed(x,"children"); }
--- 5589,5592 ---- *************** *** 5647,5651 **** } else post("UNSUPPORTED object_insert: %s",s->name); /* canvas_reorder_last(x,i); */ - gobj_changed(x,"children"); x->next_add = -1; /*err: pd_popsym(x);*/ --- 5651,5654 ----