Changeset 10256


Ignore:
Timestamp:
Jul 30, 2008, 11:03:12 PM (11 years ago)
Author:
gb
Message:

In CLEAR-IOBLOCK-STREAMS, be careful about the use of TYPEP: we may
have just cleared foreign classes from data structurs that map
from their (per-session) addresses to metainformation about them,
and calling TYPEP (and class-cell-typep ...) on them may cause
their addresses to be reentered in those data structures. Those
pointers will become DEAD-MACPTRs in the saved image, and we'll
wind up with a tree full of DEAD-MACPTRs and will possibly choke
on them in the startup code (e.g., REVIVE-OBJC-CLASSES).

This seems to close ticket:320.

(And spell TYPECODE correctly, too.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lib/dumplisp.lisp

    r10255 r10256  
    5555                    ;; those per-session addresses and confuse the
    5656                    ;; startup code.
    57                     (if (and (eql (tyepcode o) target::subtag-instance)
     57                    (if (and (eql (typecode o) target::subtag-instance)
    5858                             (typep o 'buffered-stream-mixin))
    5959                      (let ((s (slot-value o 'ioblock)))
Note: See TracChangeset for help on using the changeset viewer.