/[cmucl]/src/pcl/dlisp.lisp
ViewVC logotype

Diff of /src/pcl/dlisp.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by pw, Thu Feb 6 21:24:07 1997 UTC revision 1.4 by dtc, Sun Jun 7 18:04:21 1998 UTC
# Line 152  Line 152 
152                                ((fsc-instance-p ,instance)                                ((fsc-instance-p ,instance)
153                                 ,@(unless class-slot-p                                 ,@(unless class-slot-p
154                                     `((setq slots (fsc-instance-slots ,instance))))                                     `((setq slots (fsc-instance-slots ,instance))))
155                                 (fsc-instance-wrapper ,instance))))                                 (fsc-instance-wrapper ,instance)))))
156                 ,@(when readp '(value)))            (block access
157            (if (or (null wrapper)              (when (and wrapper
158                    (zerop (wrapper-cache-number-vector-ref wrapper ,field))                         (/= (wrapper-cache-number-vector-ref wrapper ,field) 0)
159                    (not (or (eq wrapper wrapper-0)                         ,@(if (eql 1 1-or-2-class)
160                             ,@(when (eql 2 1-or-2-class)                               `((eq wrapper wrapper-0))
161                                 `((eq wrapper wrapper-1)))))                               `((or (eq wrapper wrapper-0)
162                    ,@(when readp `((eq *slot-unbound* (setq value ,read-form)))))                                     (eq wrapper wrapper-1)))))
163                (funcall miss-fn ,@arglist)                ,@(if readp
164                ,(if readp                      `((let ((value ,read-form))
165                     'value                          (unless (eq value *slot-unbound*)
166                     `(setf ,read-form ,(car arglist))))))))                            (return-from access value))))
167                        `((return-from access (setf ,read-form ,(car arglist))))))
168                (funcall miss-fn ,@arglist))))))
169    
170  (defun emit-slot-read-form (class-slot-p index slots)  (defun emit-slot-read-form (class-slot-p index slots)
171    (if class-slot-p    (if class-slot-p

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.5