Changeset 312
- Timestamp:
- Jan 17, 2004, 7:40:32 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-clos.lisp (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-clos.lisp
r284 r312 28 28 29 29 (defun extract-instance-direct-slotds (class) 30 (extract-slotds-with-allocation :instance (%class .direct-slots class)))30 (extract-slotds-with-allocation :instance (%class-direct-slots class))) 31 31 32 32 (defun extract-class-direct-slotds (class) 33 (extract-slotds-with-allocation :class (%class .direct-slots class)))33 (extract-slotds-with-allocation :class (%class-direct-slots class))) 34 34 35 35 (defun extract-instance-effective-slotds (class) … … 50 50 51 51 (defun direct-instance-and-class-slotds (class) 52 (extract-instance-and-class-slotds (%class .direct-slots class)))52 (extract-instance-and-class-slotds (%class-direct-slots class))) 53 53 54 54 (defun effective-instance-and-class-slotds (class) 55 (extract-instance-and-class-slotds (%class .slots class)))55 (extract-instance-and-class-slotds (%class-slots class))) 56 56 57 57 (defun %shared-initialize (instance slot-names initargs) … … 67 67 (update-obsolete-instance instance) 68 68 (setq wrapper (instance.class-wrapper instance))) 69 (dolist (slotd (%class .slots class))69 (dolist (slotd (%class-slots class)) 70 70 (let* ((loc (%slot-definition-location slotd))) 71 71 (unless loc (error "Blew it! no location for ~s" slotd)) … … 288 288 (- (%slot-definition-location e) 1))) 289 289 (%slot-definition-name e))))) 290 (old-wrapper (%class .own-wrapper class))290 (old-wrapper (%class-own-wrapper class)) 291 291 (old-ordering (if old-wrapper (%wrapper-instance-slots old-wrapper))) 292 292 (new-wrapper … … 303 303 #|(%class.own-wrapper class)|# 304 304 (%cons-wrapper class))))) 305 (setf (%class .slots class) eslotds)305 (setf (%class-slots class) eslotds) 306 306 (setf (%wrapper-instance-slots new-wrapper) new-ordering 307 307 (%wrapper-class-slots new-wrapper) (%class-get class :class-slots) 308 (%class .own-wrapper class) new-wrapper)308 (%class-own-wrapper class) new-wrapper) 309 309 (setup-slot-lookup new-wrapper eslotds)))) 310 310 … … 390 390 391 391 (defmethod add-direct-subclass ((class class) (subclass class)) 392 (pushnew subclass (%class .subclasses class))392 (pushnew subclass (%class-direct-subclasses class)) 393 393 subclass) 394 394 395 395 (defmethod remove-direct-subclass ((class class) (subclass class)) 396 (setf (%class .subclasses class)397 (remove subclass (%class .subclasses class)))396 (setf (%class-direct-subclasses class) 397 (remove subclass (%class-direct-subclasses class))) 398 398 subclass) 399 399 400 400 (defun add-direct-subclasses (class new) 401 401 (dolist (n new) 402 (unless (memq class (%class .subclasses class))402 (unless (memq class (%class-direct-subclasses class)) 403 403 (add-direct-subclass n class)))) 404 404 … … 416 416 ;;; both UPDATE-CPL and UPDATE-SLOTS have been called on the class. 417 417 (defmethod class-finalized-p ((class std-class)) 418 (let* ((w (%class .own-wrapper class)))418 (let* ((w (%class-own-wrapper class))) 419 419 (and w (typep (%wrapper-instance-slots w) 'vector)))) 420 420 … … 485 485 (or (forward-referenced-class-p class) 486 486 (some #'class-has-a-forward-referenced-superclass-p 487 (%class .local-supers class))))487 (%class-direct-superclasses class)))) 488 488 489 489 (defun update-cpl (class cpl) … … 561 561 but the meta-classes ~S and~%~S are incompatible." 562 562 superclass class (class-of superclass) (class-of class)))) 563 (setf (%class .local-supers class) direct-superclasses))564 (setq direct-superclasses (%class .local-supers class)))563 (setf (%class-direct-superclasses class) direct-superclasses)) 564 (setq direct-superclasses (%class-direct-superclasses class))) 565 565 (setq direct-slots 566 566 (if direct-slots-p 567 (setf (%class .direct-slots class)567 (setf (%class-direct-slots class) 568 568 (mapcar #'(lambda (initargs) 569 569 (make-direct-slot-definition class initargs)) 570 570 direct-slots)) 571 (%class .direct-slots class)))571 (%class-direct-slots class))) 572 572 (if direct-default-initargs-p 573 (setf (%class .local-default-initargs class) direct-default-initargs)574 (setq direct-default-initargs (%class .local-default-initargs class)))573 (setf (%class-direct-default-initargs class) direct-default-initargs) 574 (setq direct-default-initargs (%class-direct-default-initargs class))) 575 575 (let* ((class-slot-cells ())) 576 576 (dolist (slot direct-slots) … … 702 702 703 703 (defun %find-direct-slotd (class name) 704 (dolist (dslotd (%class .direct-slots class)704 (dolist (dslotd (%class-direct-slots class) 705 705 (error "Direct slot definition for ~s not found in ~s" name class)) 706 706 (when (eq (%slot-definition-name dslotd) name) … … 712 712 (destructuring-bind (slot-name &rest readers) pair 713 713 (setf (%slot-definition-readers (%find-direct-slotd class slot-name)) readers))) 714 (add-accessor-methods class (%class .direct-slots class))))714 (add-accessor-methods class (%class-direct-slots class)))) 715 715 716 716 (defun %add-slot-writers (class-name pairs) … … 719 719 (destructuring-bind (slot-name &rest readers) pair 720 720 (setf (%slot-definition-writers (%find-direct-slotd class slot-name)) readers))) 721 (add-accessor-methods class (%class.direct-slots class)))) 722 723 724 725 721 (add-accessor-methods class (%class-direct-slots class)))) 726 722 727 723 … … 1080 1076 (declare (ignore slot-names)) 1081 1077 (labels ((obsolete (class) 1082 (dolist (sub (%class .subclasses class)) (obsolete sub))1078 (dolist (sub (%class-direct-subclasses class)) (obsolete sub)) 1083 1079 ;;Need to save old class info in wrapper for obsolete instance access... 1084 1080 (setf (%class.cpl class) nil))) 1085 1081 (obsolete class) 1086 1082 (when direct-superclasses-p 1087 (let* ((old-supers (%class .local-supers class))1083 (let* ((old-supers (%class-direct-superclasses class)) 1088 1084 (new-supers direct-superclasses)) 1089 1085 (dolist (c old-supers) … … 1094 1090 (add-direct-subclass c class))) 1095 1091 (setf (%class.local-supers class) new-supers))) 1096 (unless (%class .own-wrapper class)1097 (setf (%class .own-wrapper class) (%cons-wrapper class)))1092 (unless (%class-own-wrapper class) 1093 (setf (%class-own-wrapper class) (%cons-wrapper class))) 1098 1094 (update-cpl class (compute-cpl class)))) 1099 1095 … … 1162 1158 (fdefinition '%class-default-initargs) #'class-default-initargs 1163 1159 (fdefinition '%class-direct-default-initargs) #'class-direct-default-initargs 1160 (fdefinition '(setf %class-direct-default-initargs)) 1161 #'(lambda (new class) 1162 (if (typep class 'slots-class) 1163 (setf (slot-value class 'direct-default-initargs) new) 1164 new)) 1164 1165 (fdefinition '%class-direct-slots) #'class-direct-slots 1166 (fdefinition '(setf %class-direct-slots)) 1167 #'(lambda (new class) 1168 (if (typep class 'slots-class) 1169 (setf (slot-value class 'direct-slots) new) 1170 new)) 1165 1171 (fdefinition '%class-slots) #'class-slots 1166 1172 (fdefinition '%class-direct-superclasses) #'class-direct-superclasses 1167 (fdefinition '%class-direct-subclasses) #'class-direct-subclasses) 1173 (fdefinition '(setf %class-direct-superclasses)) 1174 #'(lambda (new class) 1175 (setf (slot-value class 'direct-superclasses) new)) 1176 (fdefinition '%class-direct-subclasses) #'class-direct-subclasses 1177 ) 1168 1178 1169 1179
Note:
See TracChangeset
for help on using the changeset viewer.
