Changeset 10057


Ignore:
Timestamp:
Jul 16, 2008, 4:56:48 PM (11 years ago)
Author:
wws
Message:

singleton-reader-code calls update-obsolete-instance if it encounters one.
This shouldn't happen in the locked CLOS workd, but
ccl:finalize-instance, which is called by some client code, ends up
calling update-slots, which makes all instances obsolete. This
shouldn't happen, if it doesn't really need to, but it was easier to
fix singleton-reader-dcode than to figure out the proper fix. Doesn't
slow anything down.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/level-1/l1-clos.lisp

    r9945 r10057  
    18441844            wrapper)
    18451845      (%slot-ref (instance.slots instance) location)
    1846       (no-applicable-method (%gf-dispatch-table-gf dt) instance))))
     1846      (cond ((and (eq (typecode instance) target::subtag-instance)
     1847                  (eq 0 (%wrapper-hash-index (instance.class-wrapper instance)))
     1848                  (progn (update-obsolete-instance instance)
     1849                         (eq (instance.class-wrapper instance) wrapper)))
     1850             (%slot-ref (instance.slots instance) location))
     1851            (t (no-applicable-method (%gf-dispatch-table-gf dt) instance))))))
    18471852(register-dcode-proto #'singleton-reader-dcode *gf-proto-one-arg*)
    18481853
Note: See TracChangeset for help on using the changeset viewer.