Changeset 549


Ignore:
Timestamp:
Feb 21, 2004, 5:14:19 PM (21 years ago)
Author:
Gary Byers
Message:

Handle INITFUNCTION/INITARG case in SHARED-INITIALIZE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/examples/objc-clos.lisp

    r548 r549  
    756756    ;; Initialize CLOS slots
    757757    (dolist (slotd (class-slots class))
    758       (when (not (typep slotd 'foreign-direct-slot-definition)) ; For now
     758      (when (not (typep slotd 'foreign-effective-slot-definition)) ; For now
    759759        (let ((sname (slot-definition-name slotd))
    760760              (slot-type (slot-definition-type slotd))
     
    769769                    (setf (slot-value instance sname) newval)
    770770                  (report-bad-arg newval slot-type))
    771               (let ((curval (slot-value instance sname)))
     771              (let* ((loc (slot-definition-location slotd))
     772                     (curval (%standard-instance-instance-location-access
     773                             instance loc)))
    772774                (when (and (or (eq slot-names t)
    773775                               (member sname slot-names :test #'eq))
     
    776778                  (let ((newval (funcall initfunction)))
    777779                    (unless (funcall typepred newval)
    778                       (report-bad-arg newval slot-type))))))))))
     780                      (report-bad-arg newval slot-type))
     781                    (setf (%standard-instance-instance-location-access
     782                           instance loc)
     783                          newval)))))))))
    779784    instance))
    780785
Note: See TracChangeset for help on using the changeset viewer.