xlisp bug

Mark Mendel mark at digi-g.UUCP
Wed Apr 3 07:03:18 AEST 1985


The consists of contexts not being popped when a throw occurs!
This occurs, for instance, when an error occurs within a non-error cathing
context, like a tagblock:

	(prog () (*unbound*))

causes core dumps.

The fix:

*** xljump.c	Tue Apr  2 14:52:44 1985
--- =orig/xljump.c	Thu Mar 21 09:41:51 1985
***************
*** 39,45
      xlunbind(cptr->c_xlenv);
      xlnewenv = cptr->c_xlnewenv;
      xltrace = cptr->c_xltrace;
-     xlcontext = cptr;
  
      /* call the handler */
      longjmp(cptr->c_jmpbuf,type);

--- 39,44 -----
      xlunbind(cptr->c_xlenv);
      xlnewenv = cptr->c_xlnewenv;
      xltrace = cptr->c_xltrace;
  
      /* call the handler */
      longjmp(cptr->c_jmpbuf,type);



More information about the Comp.sources.bugs mailing list