[PD-cvs] pd/src desire.c,1.1.2.217.2.69,1.1.2.217.2.70

Mathieu Bouchard matju at users.sourceforge.net
Thu Dec 14 03:18:31 CET 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv441

Modified Files:
      Tag: desiredata
	desire.c 
Log Message:
protect methods text_setto,object_moveto,etc from obsolete pointers


Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.69
retrieving revision 1.1.2.217.2.70
diff -C2 -d -r1.1.2.217.2.69 -r1.1.2.217.2.70
*** desire.c	13 Dec 2006 21:37:34 -0000	1.1.2.217.2.69
--- desire.c	14 Dec 2006 02:18:26 -0000	1.1.2.217.2.70
***************
*** 2257,2269 ****
      t_gotfn chkdsp = zgetfn(y,gensym("dsp"));
      int drawcommand = class_isdrawcommand(y->_class);
- 
      /* if we're a drawing command, erase all scalars now, before deleting
         it; we'll redraw them once it's deleted below. */
!     if (drawcommand)
!         canvas_redrawallfortemplate(template_findbyname(canvas_makebindsym(canvas_getcanvas(x)->name)), 2);
! 
      canvas_deletelinesfor(x,(t_text *)y);
      sys_mgui(y,"delete","");
- 
      if (x->list == y) {
  	x->list = y->g_next;
--- 2257,2265 ----
      t_gotfn chkdsp = zgetfn(y,gensym("dsp"));
      int drawcommand = class_isdrawcommand(y->_class);
      /* if we're a drawing command, erase all scalars now, before deleting
         it; we'll redraw them once it's deleted below. */
!     if (drawcommand) canvas_redrawallfortemplate(template_findbyname(canvas_makebindsym(canvas_getcanvas(x)->name)), 2);
      canvas_deletelinesfor(x,(t_text *)y);
      sys_mgui(y,"delete","");
      if (x->list == y) {
  	x->list = y->g_next;
***************
*** 2273,2278 ****
      pd_free(y);
      if (chkdsp) canvas_update_dsp();
!     if (drawcommand)
!         canvas_redrawallfortemplate(template_findbyname(canvas_makebindsym(canvas_getcanvas(x)->name)), 1);
      x->valid = ++canvas_valid;
  }
--- 2269,2273 ----
      pd_free(y);
      if (chkdsp) canvas_update_dsp();
!     if (drawcommand) canvas_redrawallfortemplate(template_findbyname(canvas_makebindsym(canvas_getcanvas(x)->name)), 1);
      x->valid = ++canvas_valid;
  }
***************
*** 6195,6203 ****
  }
  
! static void canvas_text_setto(t_canvas *x, t_symbol *s, int argc, t_atom *argv) {
! 	char str[666];
  	t_text *o;
! 	t_symbol *name = atom_getsymbol(argv);
! 	if (sscanf(name->s_name,"x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;}
  	for (int i=0; i<argc-1; i++) str[i] = atom_getint(argv+i+1);
  	str[argc-1]=0;
--- 6190,6209 ----
  }
  
! t_object *symbol2opointer(t_symbol *s) {
  	t_text *o;
! 	if (sscanf(s->s_name,"x%lx",(long*)&o)<1) {error("expected object-id"); return 0;}
! 	if (!hash_exists(object_table,o)) {
! 		error("%s target is not a currently valid pointer",s->s_name);
! 		return 0;
! 	}
! 	if (!o->_class->c_patchable) {error("%s target not a patchable object"); return 0;}
! 	return o;
! }
! 
! t_object *atom2opointer(t_atom *a) {return symbol2opointer(atom_getsymbol(a));}
! 
! static void canvas_text_setto(t_canvas *x, t_symbol *s, int argc, t_atom *argv) {
! 	t_text *o = atom2opointer(&argv[0]); if (!o) return;
! 	char str[4096];
  	for (int i=0; i<argc-1; i++) str[i] = atom_getint(argv+i+1);
  	str[argc-1]=0;
***************
*** 6206,6217 ****
  
  static void canvas_object_moveto(t_canvas *x, t_symbol *name, t_floatarg px, t_floatarg py) {
! 	t_text *o;
! 	if (sscanf(name->s_name,"x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;}
  	o->x=(int)px; gobj_changed(o,"x");
  	o->y=(int)py; gobj_changed(o,"y");
  }
  static void canvas_object_delete(t_canvas *x, t_symbol *name) {
! 	t_text *o;
! 	if (sscanf(name->s_name,"x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;}
  	canvas_delete(x,o);
  	gobj_changed(x,"children");
--- 6212,6221 ----
  
  static void canvas_object_moveto(t_canvas *x, t_symbol *name, t_floatarg px, t_floatarg py) {
! 	t_text *o = symbol2opointer(name); if (!o) return;
  	o->x=(int)px; gobj_changed(o,"x");
  	o->y=(int)py; gobj_changed(o,"y");
  }
  static void canvas_object_delete(t_canvas *x, t_symbol *name) {
! 	t_text *o = symbol2opointer(name); if (!o) return;
  	canvas_delete(x,o);
  	gobj_changed(x,"children");
***************
*** 6219,6224 ****
  
  static void canvas_object_get_tips(t_canvas *x, t_symbol *name) {
! 	t_text *o;
! 	if (sscanf(name->s_name,"x%lx",(long*)&o)<1) {pd_error(x,"gargamel was here"); return;}
  	char foo[666];
  	if (o->ob_pd->c_firstin) strcpy(foo,o->ob_pd->c_firsttip->s_name); else strcpy(foo,"");
--- 6223,6227 ----
  
  static void canvas_object_get_tips(t_canvas *x, t_symbol *name) {
! 	t_text *o = symbol2opointer(name); if (!o) return;
  	char foo[666];
  	if (o->ob_pd->c_firstin) strcpy(foo,o->ob_pd->c_firsttip->s_name); else strcpy(foo,"");





More information about the Pd-cvs mailing list