[PD-cvs] pd/src desire.c,1.1.2.129,1.1.2.130

Mathieu Bouchard matju at users.sourceforge.net
Fri Sep 1 23:36:36 CEST 2006


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

Modified Files:
      Tag: devel_0_39
	desire.c 
Log Message:
fixed rtext_free crash.
fixed canvas_restoreconnections crash.


Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.129
retrieving revision 1.1.2.130
diff -C2 -d -r1.1.2.129 -r1.1.2.130
*** desire.c	1 Sep 2006 18:42:45 -0000	1.1.2.129
--- desire.c	1 Sep 2006 21:36:33 -0000	1.1.2.130
***************
*** 755,759 ****
  	    glist_each(y,x) {
  		ob = pd_checkobject(&y->g_pd);
! 		if (ob) rtext_free(glist_findrtext(x, ob));
  	    }
              editor_free(x->gl_editor, x);
--- 755,762 ----
  	    glist_each(y,x) {
  		ob = pd_checkobject(&y->g_pd);
! 		if (ob) {
! 			t_rtext *r = glist_findrtext(x, ob);
! 			if (r) rtext_free(r);
! 		}
  	    }
              editor_free(x->gl_editor, x);
***************
*** 1758,1766 ****
--- 1761,1772 ----
  }
  
+ /* can someone please figure out what this and canvas_stowconnections are for? */
  void canvas_restoreconnections(t_canvas *x)
  {
+ /*
      pd_bind(&x->gl_pd, gensym("#X"));
      binbuf_eval(x->gl_editor->e_connectbuf, 0, 0, 0);
      pd_unbind(&x->gl_pd, gensym("#X"));
+ */
  }
  
***************
*** 10598,10608 ****
  
  void rtext_free(t_rtext *x) {
!     if (x->x_glist->gl_editor->e_textedfor == x)
!         x->x_glist->gl_editor->e_textedfor = 0;
!     if (x->x_glist->gl_editor->e_rtext == x)
!         x->x_glist->gl_editor->e_rtext = x->x_next;
      else {
          t_rtext *e2;
!         for (e2 = x->x_glist->gl_editor->e_rtext; e2; e2 = e2->x_next) if (e2->x_next == x) {
              e2->x_next = x->x_next;
              break;
--- 10604,10613 ----
  
  void rtext_free(t_rtext *x) {
!     t_editor *e = x->x_glist->gl_editor;
!     if (e->e_textedfor == x) e->e_textedfor = 0;
!     if (e->e_rtext == x) e->e_rtext = x->x_next;
      else {
          t_rtext *e2;
!         for (e2 = e->e_rtext; e2; e2 = e2->x_next) if (e2->x_next == x) {
              e2->x_next = x->x_next;
              break;





More information about the Pd-cvs mailing list