Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9752
Modified Files: Tag: desiredata desire.c Log Message: better debugging for future feature of differential upload
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.217.2.178 retrieving revision 1.1.2.217.2.179 diff -C2 -d -r1.1.2.217.2.178 -r1.1.2.217.2.179 *** desire.c 31 Jul 2007 01:20:29 -0000 1.1.2.217.2.178 --- desire.c 31 Jul 2007 05:54:13 -0000 1.1.2.217.2.179 *************** *** 66,73 **** t_symbol *s_empty, *s_pd, *s_Pd;
//-------------------------------------------------------------------------- ! // t_appendix: an extension to t_gobj made by matju so that ! // all t_gobj's may have new fields without sacrificing binary compat with ! // externals compiled for PureMSP.
typedef t_hash<t_symbol *, t_arglist *> t_visual; --- 66,83 ---- t_symbol *s_empty, *s_pd, *s_Pd;
+ std::ostream &operator << (std::ostream &str, t_pd *self) { + t_binbuf *b; + if (self->_class->patchable && (b = ((t_text *)self)->binbuf)) { + char *buf; int bufn; + binbuf_gettext(b,&buf,&bufn); + str << "[" << buf << "]"; + free(buf); + } else str << "<" << self->_class->name->name << ":" << std::hex << (long)self << ">"; + return str; + } + //-------------------------------------------------------------------------- ! // t_appendix: an extension to t_gobj made by matju so that all t_gobj's may have new fields ! // without sacrificing binary compat with externals compiled for PureMSP.
typedef t_hash<t_symbol *, t_arglist *> t_visual; *************** *** 87,96 **** t_visual *h = master->dix->visual; //fprintf(stderr,"appendix_save %p size=%ld\n",master,hash_size(h)); ! if (h->size()) { ! t_symbol *k; ! t_arglist *v; ! int i=0; ! binbuf_addv(b,"t","#V"); ! hash_foreach(k,v,h) { t_arglist *al = (t_arglist *)v; binbuf_addv(b,"s",k); --- 97,106 ---- t_visual *h = master->dix->visual; //fprintf(stderr,"appendix_save %p size=%ld\n",master,hash_size(h)); ! if (!h->size()) return; ! t_symbol *k; ! t_arglist *v; ! int i=0; ! binbuf_addv(b,"t","#V"); ! hash_foreach(k,v,h) { t_arglist *al = (t_arglist *)v; binbuf_addv(b,"s",k); *************** *** 99,103 **** else binbuf_addv(b,"t",","); i++; - } } } --- 109,112 ---- *************** *** 147,151 **** t_atom argv[1]; SETFLOAT(argv,(float)dirty); ! gobj_changed3(self,self,1,argv); }
--- 156,160 ---- t_atom argv[1]; SETFLOAT(argv,(float)dirty); ! //gobj_changed3(self,self,1,argv); /* TRACE THE DIFFERENTIAL UPLOAD REQUESTS */ }
*************** *** 158,162 **** void gobj_changed3 (t_gobj *self, t_gobj *origin, int argc, t_atom *argv) { t_appendix *d = self->dix; ! //printf("gobj_changed3 self=%lx origin=%lx\n",(long)self,(long)origin); if (!d) {post("gobj_changed3: no appendix in %p",self); return;} for (int i=0; i<d->nobs; i++) { --- 167,174 ---- void gobj_changed3 (t_gobj *self, t_gobj *origin, int argc, t_atom *argv) { t_appendix *d = self->dix; ! std::ostringstream s; ! for (int i=0; i<argc; i++) s << " " << &argv[i]; ! //fprintf(stderr,"gobj_changed3 self=%lx origin=%lx args=%s\n",(long)self,(long)origin,s.str().data()); ! std::cerr << "gobj_changed3 self=" << self << " origin=" << origin << " args={" << s.str().data()+(!!argc) << "}\n"; if (!d) {post("gobj_changed3: no appendix in %p",self); return;} for (int i=0; i<d->nobs; i++) { *************** *** 261,266 ****
struct t_dirtyentry { ! t_symbol *a[4]; ! t_dirtyentry() {a[0]=a[1]=a[2]=a[3]=0;} };
--- 273,279 ----
struct t_dirtyentry { ! long fields; ! size_t start,end; ! t_dirtyentry() {} };
*************** *** 7273,7276 **** --- 7286,7290 ---- if (x->_class->name == s___list) {lists++; continue;} int nobs = x->_class->gobj ? ((t_gobj *)x)->dix->nobs : 0; + // this has been duplicated as the ostream operator of t_pd * (see above). t_binbuf *b; if (x->_class->patchable && (b = ((t_text *)x)->binbuf)) {