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 ----