[armedbear-cvs] r12841 - branches/generic-class-file/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Sun Aug 1 09:59:15 UTC 2010


Author: ehuelsmann
Date: Sun Aug  1 05:59:11 2010
New Revision: 12841

Log:
Fix dual-mode: the new style requires type specifiers, not strings.

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	Sun Aug  1 05:59:11 2010
@@ -462,11 +462,10 @@
   (let* ((info (get-descriptor-info arg-types return-type))
          (descriptor (car info))
          (stack-effect (cdr info))
-         (class-name (!class-name class-name))
          (index (if (null *current-code-attribute*)
-                    (pool-method class-name method-name descriptor)
+                    (pool-method (!class-name class-name) method-name descriptor)
                     (pool-add-method-ref *pool* class-name
-                                         method-name descriptor)))
+                                         method-name (cons return-type arg-types))))
          (instruction (apply #'%emit 'invokestatic (u2 index))))
     (setf (instruction-stack instruction) stack-effect)))
 
@@ -488,11 +487,10 @@
   (let* ((info (get-descriptor-info arg-types return-type))
          (descriptor (car info))
          (stack-effect (cdr info))
-         (class-name (!class-name class-name))
          (index (if (null *current-code-attribute*)
-                    (pool-method class-name method-name descriptor)
+                    (pool-method (!class-name class-name) method-name descriptor)
                     (pool-add-method-ref *pool* class-name
-                                         method-name descriptor)))
+                                         method-name (cons return-type arg-types))))
          (instruction (apply #'%emit 'invokevirtual (u2 index))))
     (declare (type (signed-byte 8) stack-effect))
     (let ((explain *explain*))
@@ -510,11 +508,10 @@
   (let* ((info (get-descriptor-info arg-types nil))
          (descriptor (car info))
          (stack-effect (cdr info))
-         (class-name (!class-name class-name))
          (index (if (null *current-code-attribute*)
-                    (pool-method class-name "<init>" descriptor)
+                    (pool-method (!class-name  class-name) "<init>" descriptor)
                     (pool-add-method-ref *pool* class-name
-                                         "<init>" descriptor)))
+                                         "<init>" (cons nil arg-types))))
          (instruction (apply #'%emit 'invokespecial (u2 index))))
     (declare (type (signed-byte 8) stack-effect))
     (setf (instruction-stack instruction) (1- stack-effect))))




More information about the armedbear-cvs mailing list