[PD-cvs] pd/src g_canvas.c,1.4.4.1.2.7,1.4.4.1.2.8

Thomas Grill xovo at users.sourceforge.net
Fri Jun 30 17:01:23 CEST 2006


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

Modified Files:
      Tag: devel_0_39
	g_canvas.c 
Log Message:
avoid pd crash on loading bogus patcher files

Index: g_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
retrieving revision 1.4.4.1.2.7
retrieving revision 1.4.4.1.2.8
diff -C2 -d -r1.4.4.1.2.7 -r1.4.4.1.2.8
*** g_canvas.c	22 Aug 2005 16:28:25 -0000	1.4.4.1.2.7
--- g_canvas.c	30 Jun 2006 15:01:21 -0000	1.4.4.1.2.8
***************
*** 168,175 ****
  t_canvasenvironment *canvas_getenv(t_canvas *x)
  {
!     if (!x) bug("canvas_getenv");
      while (!x->gl_env)
!         if (!(x = x->gl_owner))
              bug("t_canvasenvironment", x);
      return (x->gl_env);
  }
--- 168,183 ----
  t_canvasenvironment *canvas_getenv(t_canvas *x)
  {
!     if (!x) 
!     {
!         bug("canvas_getenv");
!         return NULL;
!     }
! 
      while (!x->gl_env)
!         if (!(x = x->gl_owner)) 
!         {
              bug("t_canvasenvironment", x);
+             return NULL;
+         }
      return (x->gl_env);
  }
***************
*** 187,192 ****
  {
      t_canvasenvironment *e = canvas_getenv(canvas_getcurrent());
!     *argcp = e->ce_argc;
!     *argvp = e->ce_argv;
  }
  
--- 195,209 ----
  {
      t_canvasenvironment *e = canvas_getenv(canvas_getcurrent());
!     if(e != NULL)
!     {
!         *argcp = e->ce_argc;
!         *argvp = e->ce_argv;
!     }
!     else
!     {
!         /* this should only happen when something goes wrong in canvas_getenv (bug!) */
!         *argcp = 0;
!         *argvp = NULL;
!     }
  }
  





More information about the Pd-cvs mailing list