Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11516
Modified Files: Tag: desiredata desire.c Log Message: pd_upload records that an object has been uploaded; skip zombies in object_table.
Index: desire.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v retrieving revision 1.1.2.217.2.129 retrieving revision 1.1.2.217.2.130 diff -C2 -d -r1.1.2.217.2.129 -r1.1.2.217.2.130 *** desire.c 15 Jan 2007 23:11:04 -0000 1.1.2.217.2.129 --- desire.c 15 Jan 2007 23:35:53 -0000 1.1.2.217.2.130 *************** *** 6390,6394 **** } appendix_save(self,b); - binbuf_gettext(b,&s,&n); if (s[n-1]=='\n') n--; --- 6390,6393 ---- *************** *** 6423,6426 **** --- 6422,6428 ---- } } + if (hash_exists(object_table,self)) { + hash_set(object_table,self,(void *)((long)hash_get(object_table,self)|2)); /* has been uploaded */ + } else post("object_table is broken"); }
*************** *** 7677,7685 **** t_symbol *s_inlet = gensym("inlet"); t_symbol *s___list = gensym("__list"); ! int inlets=0, lists=0; hashkey k; hashvalue v; post("object_table = {"); hash_foreach(k,v,object_table) { t_pd *x = (t_pd *)k; //post(" %p %ld %s",k,(long)v,x->_class->name->name); if (x->_class->name == s_inlet) {inlets++; continue;} --- 7679,7688 ---- t_symbol *s_inlet = gensym("inlet"); t_symbol *s___list = gensym("__list"); ! size_t inlets=0, lists=0, zombies=0; hashkey k; hashvalue v; post("object_table = {"); hash_foreach(k,v,object_table) { t_pd *x = (t_pd *)k; + if (!(long)v&1) {zombies++; continue;} /* skip zombies */ //post(" %p %ld %s",k,(long)v,x->_class->name->name); if (x->_class->name == s_inlet) {inlets++; continue;} *************** *** 7693,7698 **** } else post(" %p %ld (%dobs) %s",k,(long)v,nobs,x->_class->name->name); } ! post("} (%d non-omitted objects, plus %d [inlet], plus %d [__list])", ! hash_size(object_table)-inlets-lists,inlets,lists); }
--- 7696,7701 ---- } else post(" %p %ld (%dobs) %s",k,(long)v,nobs,x->_class->name->name); } ! post("} (%ld non-omitted objects, plus %ld [inlet], plus %ld [__list], plus %ld zombies)", ! hash_size(object_table)-inlets-lists-zombies,inlets,lists,zombies); }