Changeset 11824 for trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
- Timestamp:
- 05/03/09 19:27:26 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11823 r11824 1825 1825 ((equal super +lisp-primitive-class+) 1826 1826 (emit-constructor-lambda-name lambda-name) 1827 (emit-constructor-lambda-list args)1828 (emit-invokespecial-init super (lisp-object-arg-types 2)))1829 ((equal super "org/armedbear/lisp/Primitive0R")1830 (emit-constructor-lambda-name lambda-name)1831 (push '&REST args)1832 (emit-constructor-lambda-list args)1833 (emit-invokespecial-init super (lisp-object-arg-types 2)))1834 ((equal super "org/armedbear/lisp/Primitive1R")1835 (emit-constructor-lambda-name lambda-name)1836 (setf args (list (first args) '&REST (second args)))1837 (emit-constructor-lambda-list args)1838 (emit-invokespecial-init super (lisp-object-arg-types 2)))1839 ((equal super "org/armedbear/lisp/Primitive2R")1840 (emit-constructor-lambda-name lambda-name)1841 (setf args (list (first args) (second args) '&REST (third args)))1842 1827 (emit-constructor-lambda-list args) 1843 1828 (emit-invokespecial-init super (lisp-object-arg-types 2))) … … 8184 8169 (label-EXIT (gensym))) 8185 8170 8186 (unless *child-p*8187 (when (memq '&REST args)8188 (unless (or (memq '&OPTIONAL args) (memq '&KEY args))8189 (let ((arg-count (length args)))8190 (when8191 (cond ((and (= arg-count 2) (eq (%car args) '&REST))8192 (setf descriptor (get-descriptor8193 (lisp-object-arg-types 1)8194 +lisp-object+)8195 super "org/armedbear/lisp/Primitive0R"8196 args (cdr args)))8197 ((and (= arg-count 3) (eq (%cadr args) '&REST))8198 (setf descriptor (get-descriptor8199 (lisp-object-arg-types 2)8200 +lisp-object+)8201 super "org/armedbear/lisp/Primitive1R"8202 args (list (first args) (third args))))8203 ((and (= arg-count 4) (eq (%caddr args) '&REST))8204 (setf descriptor (get-descriptor8205 (list +lisp-object+8206 +lisp-object+ +lisp-object+)8207 +lisp-object+)8208 super "org/armedbear/lisp/Primitive2R"8209 args (list (first args)8210 (second args) (fourth args)))))8211 (setf *using-arg-array* nil8212 *hairy-arglist-p* nil8213 (compiland-kind compiland) :internal8214 execute-method-name "_execute"8215 execute-method (make-method8216 :name execute-method-name8217 :descriptor descriptor)))))))8218 8219 8171 (dolist (var (compiland-arg-vars compiland)) 8220 8172 (push var *visible-variables*))
Note: See TracChangeset
for help on using the changeset viewer.