XLISP bug and fix

pallas at Shasta.ARPA pallas at Shasta.ARPA
Sat May 25 04:34:47 AEST 1985


A rather serious bug in XLISP causes it to get scrambled if a garbage
collection occurs at the wrong time.  The following fix, provided by
the author, cures the problem.

>From decvax!sii!has70!betz at decwrl.ARPA Fri May 17 03:08:00 1985
Received: by decwrl.ARPA (4.22.01/4.7.34)
	id AA12347; Fri, 17 May 85 03:06:46 pdt
From: decvax!sii!has70!betz at decwrl.ARPA
Message-Id: <8505171006.AA12347 at decwrl.ARPA>
Date: Fri, 17 May 85 02:36:06 edt
Apparently-To: decwrl!pallas at su-shasta.arpa
Status: RO

Try making the following changes to XLEVAL,XLCONT,XLOBJ in every place where
the variable 'oldnewenv' is mentioned:

	/* note that this is a 'NODE' not a 'NODE *' */
	NODE ... ,oldnewenv, ...;

	.
	.
	.

	oldstk = xlsave( ... ,&oldnewenv, ... ,NULL);

	.
	.
	.

	oldnewenv.n_ptr = xlnewenv;

	.
	.
	.

	xlnewenv = oldnewenv.n_ptr;

I did this change on the version of XLISP that I am running on a VAX-11/750
under VMS version 4.1 and it seems to have fixed the problem that you were
refering to.

	Sorry about this problem,
	David Betz

-------
Note -- there is at least one place where the call to xlsave comes
AFTER the saving of xlnewenv.  You must reverse this order, as xlsave
will wipe out the pointer.

joe



More information about the Comp.sources.bugs mailing list