Changeset 15604 for trunk/abcl/src
- Timestamp:
- 11/28/22 10:28:16 (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/runtime-class.lisp
r14903 r15604 20 20 lists of constructor, method and field definitions. 21 21 22 Constructor definitions - currently NOT supported -are lists of the form22 Constructor definitions are lists of the form 23 23 (argument-types function &optional super-invocation-arguments) 24 24 where argument-types is a list of strings and function is a lisp function of … … 103 103 (emit 'return))) 104 104 (dolist (constructor constructors) 105 (destructuring-bind (argument-types function 106 &key (modifiers '(:public))) 105 (destructuring-bind (argument-types function &optional super-args) 107 106 constructor 108 107 (let* ((argument-types (mapcar #'java::canonicalize-java-type argument-types)) 109 108 (argc (length argument-types)) 110 (ctor (make-jvm-method :constructor :void argument-types :flags modifiers))109 (ctor (make-jvm-method :constructor :void argument-types)) 111 110 (field-name (string (gensym "CONSTRUCTOR"))) 112 111 (all-argc (1+ argc))) … … 120 119 121 120 (aload 0) 122 (emit-invokespecial-init (class-file-superclass class-file) nil) 121 (dolist (arg super-args) 122 (aload arg)) 123 (emit-invokespecial-init 124 (class-file-superclass class-file) 125 (map 'list 126 (lambda (index) (elt argument-types (1- index))) 127 super-args)) 128 123 129 124 130 (aload 0)
Note: See TracChangeset
for help on using the changeset viewer.