Changeset 13984


Ignore:
Timestamp:
06/24/12 14:57:25 (9 years ago)
Author:
rschlatte
Message:

Don't short-circuit slot readers for subclasses of standard-class

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/clos.lisp

    r13983 r13984  
    20522052  ;; standard-generic-function, so we call various
    20532053  ;; sys:%generic-function-foo readers to break circularities.
    2054   ;; (rudi 2012-01-27): maybe we need to discriminate between
    2055   ;; standard-methods and methods as well.
    20562054  (cond
    20572055    ((and (= (length (sys:%generic-function-methods gf)) 1)
    2058           (typep (car (sys:%generic-function-methods gf)) 'standard-reader-method))
     2056          (eq (type-of (car (sys:%generic-function-methods gf))) 'standard-reader-method)
     2057          (eq (type-of (car (std-method-specializers (%car (sys:%generic-function-methods gf))))) 'standard-class))
     2058     ;; we are standard and can elide slot-value(-using-class)
    20592059     (let* ((method (%car (sys:%generic-function-methods gf)))
    20602060            (class (car (std-method-specializers method)))
     
    27372737                     :fast-function ,(if (autoloadp 'compile)
    27382738                                         fast-function
    2739                                          (autocompile fast-function))))
     2739                                         (autocompile fast-function))
     2740                     :slot-definition ,slot-definition))
    27402741         (method-class (if (eq class +the-standard-class+)
    27412742                           +the-standard-writer-method-class+
Note: See TracChangeset for help on using the changeset viewer.