Changeset 14345
- Timestamp:
- 12/31/12 10:21:17 (10 years ago)
- Location:
- branches/1.1.x/src/org/armedbear/lisp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.1.x/src/org/armedbear/lisp/StandardGenericFunction.java
r14086 r14345 62 62 StandardClass.STANDARD_METHOD; 63 63 slots[StandardGenericFunctionClass.SLOT_INDEX_METHOD_COMBINATION] = 64 Symbol.STANDARD; // fixed up by shared-initialize :after in clos.lisp64 list(Symbol.STANDARD); // fixed up by clos.lisp:shared-initialize :after 65 65 slots[StandardGenericFunctionClass.SLOT_INDEX_ARGUMENT_PRECEDENCE_ORDER] = 66 66 NIL; -
branches/1.1.x/src/org/armedbear/lisp/clos.lisp
r14343 r14345 1826 1826 (defun make-instance-standard-generic-function (generic-function-class 1827 1827 &key name lambda-list 1828 method-class1829 method-combination1828 (method-class +the-standard-method-class+) 1829 (method-combination +the-standard-method-combination+) 1830 1830 argument-precedence-order 1831 1831 declarations … … 1835 1835 (check-argument-precedence-order lambda-list argument-precedence-order) 1836 1836 (let ((gf (std-allocate-instance +the-standard-generic-function-class+))) 1837 (unless (classp method-class) (setf method-class (find-class method-class))) 1838 (unless (typep method-combination 'method-combination) 1839 (setf method-combination 1840 (find-method-combination 1841 gf (car method-combination) (cdr method-combination)))) 1837 1842 (%set-generic-function-name gf name) 1838 1843 (%set-generic-function-lambda-list gf lambda-list) … … 4371 4376 slot-names 4372 4377 &key lambda-list argument-precedence-order 4378 (method-combination '(standard)) 4373 4379 &allow-other-keys) 4374 4380 (let* ((plist (analyze-lambda-list lambda-list)) … … 4378 4384 (set-generic-function-argument-precedence-order 4379 4385 instance (or argument-precedence-order required-args))) 4380 (when (eq (generic-function-method-combination instance) 'standard) 4381 ;; fix up "naked" (make-instance 'standard-generic-function) -- gfs 4382 ;; created via defgeneric have that slot initalized properly 4383 (set-generic-function-method-combination instance 4384 +the-standard-method-combination+)) 4386 (unless (typep (generic-function-method-combination instance) 4387 'method-combination) 4388 ;; this fixes (make-instance 'standard-generic-function) -- the 4389 ;; constructor of StandardGenericFunction sets this slot to '(standard) 4390 (setf (generic-function-method-combination instance) 4391 (find-method-combination 4392 instance (car method-combination) (cdr method-combination)))) 4385 4393 (finalize-standard-generic-function instance)) 4386 4394 … … 4588 4596 &rest all-keys 4589 4597 &key (generic-function-class +the-standard-generic-function-class+) 4590 (method-class +the-standard-method-class+)4591 (method-combination +the-standard-method-combination+)4592 4598 &allow-other-keys) 4593 4599 (setf all-keys (copy-list all-keys)) ; since we modify it … … 4595 4601 (unless (classp generic-function-class) 4596 4602 (setf generic-function-class (find-class generic-function-class))) 4597 (unless (classp method-class) (setf method-class (find-class method-class)))4598 (unless (typep method-combination 'method-combination)4599 (setf method-combination4600 (find-method-combination (class-prototype generic-function-class)4601 (car method-combination)4602 (cdr method-combination))))4603 4603 (when (and (null *clos-booting*) (fboundp function-name)) 4604 4604 (if (autoloadp function-name) … … 4610 4610 #'make-instance-standard-generic-function 4611 4611 #'make-instance) 4612 generic-function-class 4613 :name function-name 4614 :method-class method-class 4615 :method-combination method-combination 4616 all-keys)) 4612 generic-function-class :name function-name all-keys)) 4617 4613 4618 4614 (defun ensure-generic-function (function-name &rest all-keys
Note: See TracChangeset
for help on using the changeset viewer.