Changeset 13775 for trunk/abcl/src/org/armedbear/lisp/clos.lisp
- Timestamp:
- 01/14/12 20:07:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/clos.lisp
r13774 r13775 686 686 (std-finalize-inheritance class)) 687 687 (sys::%std-allocate-instance class)) 688 689 (defun allocate-funcallable-instance (class) 690 (unless (class-finalized-p class) 691 (std-finalize-inheritance class)) 692 (sys::%allocate-funcallable-instance class)) 688 693 689 694 (defun make-instance-standard-class (metaclass … … 2651 2656 (defmethod slot-value-using-class ((class standard-class) instance slot-name) 2652 2657 (std-slot-value instance slot-name)) 2653 2658 (defmethod slot-value-using-class ((class funcallable-standard-class) 2659 instance slot-name) 2660 (std-slot-value instance slot-name)) 2654 2661 (defmethod slot-value-using-class ((class structure-class) instance slot-name) 2655 2662 (std-slot-value instance slot-name)) … … 2664 2671 2665 2672 (defmethod (setf slot-value-using-class) (new-value 2673 (class funcallable-standard-class) 2674 instance 2675 slot-name) 2676 (setf (std-slot-value instance slot-name) new-value)) 2677 2678 (defmethod (setf slot-value-using-class) (new-value 2666 2679 (class structure-class) 2667 2680 instance … … 2675 2688 2676 2689 (defmethod slot-exists-p-using-class ((class standard-class) instance slot-name) 2690 (std-slot-exists-p instance slot-name)) 2691 (defmethod slot-exists-p-using-class ((class funcallable-standard-class) instance slot-name) 2677 2692 (std-slot-exists-p instance slot-name)) 2678 2693 … … 2686 2701 (defmethod slot-boundp-using-class ((class standard-class) instance slot-name) 2687 2702 (std-slot-boundp instance slot-name)) 2703 (defmethod slot-boundp-using-class ((class funcallable-standard-class) instance slot-name) 2704 (std-slot-boundp instance slot-name)) 2688 2705 (defmethod slot-boundp-using-class ((class structure-class) instance slot-name) 2689 2706 "Structure slots can't be unbound, so this method always returns T." … … 2693 2710 (defgeneric slot-makunbound-using-class (class instance slot-name)) 2694 2711 (defmethod slot-makunbound-using-class ((class standard-class) 2712 instance 2713 slot-name) 2714 (std-slot-makunbound instance slot-name)) 2715 (defmethod slot-makunbound-using-class ((class funcallable-standard-class) 2695 2716 instance 2696 2717 slot-name) … … 2720 2741 (declare (ignore initargs)) 2721 2742 (std-allocate-instance class)) 2743 2744 (defmethod allocate-instance ((class funcallable-standard-class) &rest initargs) 2745 (declare (ignore initargs)) 2746 (allocate-funcallable-instance class)) 2722 2747 2723 2748 (defmethod allocate-instance ((class structure-class) &rest initargs) … … 2812 2837 (defgeneric make-instance (class &rest initargs &key &allow-other-keys)) 2813 2838 2814 (defmethod make-instance ((class standard-class) &rest initargs)2839 (defmethod make-instance ((class class) &rest initargs) 2815 2840 (when (oddp (length initargs)) 2816 2841 (error 'program-error :format-control "Odd number of keyword arguments.")) … … 2828 2853 (setf initargs (append initargs default-initargs))))) 2829 2854 2830 (let ((instance ( std-allocate-instance class)))2855 (let ((instance (allocate-instance class))) 2831 2856 (check-initargs (list #'allocate-instance #'initialize-instance) 2832 2857 (list* instance initargs) … … 2956 2981 (defmethod make-instances-obsolete ((class standard-class)) 2957 2982 (%make-instances-obsolete class)) 2958 2983 (defmethod make-instances-obsolete ((class funcallable-standard-class)) 2984 (%make-instances-obsolete class)) 2959 2985 (defmethod make-instances-obsolete ((class symbol)) 2960 2986 (make-instances-obsolete (find-class class)) … … 2988 3014 (apply #'std-after-initialization-for-classes class args)) 2989 3015 3016 (defmethod initialize-instance :after ((class funcallable-standard-class) 3017 &rest args) 3018 (apply #'std-after-initialization-for-classes class args)) 3019 2990 3020 (defmethod reinitialize-instance :after ((class standard-class) &rest all-keys) 2991 3021 (remhash class *make-instance-initargs-cache*) … … 3013 3043 (defmethod compute-class-precedence-list ((class standard-class)) 3014 3044 (std-compute-class-precedence-list class)) 3045 (defmethod compute-class-precedence-list ((class funcallable-standard-class)) 3046 (std-compute-class-precedence-list class)) 3015 3047 3016 3048 ;;; Slot inheritance … … 3026 3058 ((class standard-class) name direct-slots) 3027 3059 (std-compute-effective-slot-definition class name direct-slots)) 3028 3060 (defmethod compute-effective-slot-definition 3061 ((class funcallable-standard-class) name direct-slots) 3062 (std-compute-effective-slot-definition class name direct-slots)) 3029 3063 ;;; Methods having to do with generic function metaobjects. 3030 3064 … … 3314 3348 (allocate-instance class)) 3315 3349 3350 (defmethod class-prototype ((class funcallable-standard-class)) 3351 (allocate-instance class)) 3352 3316 3353 (defmethod class-prototype ((class structure-class)) 3317 3354 (allocate-instance class))
Note: See TracChangeset
for help on using the changeset viewer.