[armedbear-cvs] r12892 - branches/generic-class-file/abcl/src/org/armedbear/lisp
Erik Huelsmann
ehuelsmann at common-lisp.net
Fri Aug 13 19:06:41 UTC 2010
Author: ehuelsmann
Date: Fri Aug 13 15:06:37 2010
New Revision: 12892
Log:
Prepare ANALYZE-ARGS for the new class file generator.
Modified:
branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
Modified: branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp (original)
+++ branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp Fri Aug 13 15:06:37 2010
@@ -6862,7 +6862,7 @@
-;; Returns descriptor.
+;; Returns a list with the types of the arguments
(defun analyze-args (compiland)
(let* ((args (cadr (compiland-p1-result compiland)))
(arg-count (length args)))
@@ -6874,15 +6874,13 @@
(memq '&REST args))
(setf *using-arg-array* t
*hairy-arglist-p* t)
- (return-from analyze-args
- (descriptor +lisp-object+ +lisp-object-array+)))
+ (return-from analyze-args (list +lisp-object-array+)))
(cond ((<= arg-count call-registers-limit)
- (apply #'descriptor +lisp-object+
- (lisp-object-arg-types arg-count)))
+ (lisp-object-arg-types arg-count))
(t (setf *using-arg-array* t)
(setf (compiland-arity compiland) arg-count)
- (descriptor +lisp-object+ +lisp-object-array+)))))
+ +lisp-object-array+))))
(defmacro with-open-class-file ((var class-file) &body body)
`(with-open-file (,var (abcl-class-file-pathname ,class-file)
@@ -7005,9 +7003,11 @@
(*child-p* (not (null (compiland-parent compiland))))
- (descriptor (analyze-args compiland))
+ (arg-types (analyze-args compiland))
(execute-method (make-method :name "execute"
- :descriptor descriptor))
+ :descriptor (apply #'descriptor
+ +lisp-object+
+ arg-types)))
(*code* ())
(*register* 1) ;; register 0: "this" pointer
(*registers-allocated* 1)
More information about the armedbear-cvs
mailing list