home *** CD-ROM | disk | FTP | other *** search
- In article <3468@hplabsz.HPL.HP.COM> mayer@hplabs.hp.com (Niels Mayer) writes:
- >It looks like garbage collection is trashing a pointer somewhere when using
- >make-string-input-stream running read-char on that stream. A[...]
-
- >I'm going to try to track this down in the code, but I thought I'd tap your
- >collective wisdoms on this problem. Maybe someone's already fixed it? [...]
-
- Yes the fix has been posted. An abridged copy is appended to this posting.
-
- Tom Almy
- toma@tekgvs.labs.tek.com
- Standard Disclaimers Apply
-
- ----------------------- OLD POSTING FOLLOWS --------------------------
-
- From: nikkie@dutesta.UUCP (Paul A.W. van Niekerk)
- Newsgroups: comp.lang.lisp.x
- Subject: two bugs with unnamed streams in xlisp 2.0
- Date: 16 Dec 88 15:13:26 GMT
- Organization: DELFT UNIVERSITY OF TECHNOLOGY
- Faculty of Electrical Engineering
- Computer architecture and Digital Technique
- Mekelweg 4 - 2628 CD Delft
-
- I discovered two bugs in my copy of xlisp 2.0 concerning unnamed streams.
- The bugs + fixes follow.
-
- 1. Unnamed streams never survive a garbage collection.
- Fix: in xldmem.c change in function mark the line:
- if ((type = ntype(this)) == CONS) {
- to
- if ((type = ntype(this)) == CONS || type == USTREAM) {
-
- 2. (format nil ...) does not protect the unnamed stream it creates, it will
- vanish during a GC.
- Fix: in xlfio.c add to function xformat the lines:
- xlsave1(val);
- ...
- xlpop();
-
- NOTES: xlsave1(val) is being passed an uninitialized value! where do the
- above xlsave1/xlpop go? pop before return?
-