Changeset 12855
- Timestamp:
- 08/02/10 11:33:39 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r12853 r12855 100 100 (defun pool-class (class-name) 101 101 (declare (optimize speed)) 102 (pool-get (list 7 (pool-name class-name))))102 (pool-get (list 7 (pool-name (class-name-internal class-name))))) 103 103 104 104 ;; (tag class-index name-and-type-index) … … 207 207 :catch-type (if (null type) 208 208 0 209 (pool-class (!class-name type))))209 (pool-class type))) 210 210 *handlers*) 211 211 (code-add-exception-handler *current-code-attribute* 212 212 start end handler type))) 213 214 (defun !class-name (class-name)215 "To be eliminated when all hard-coded strings are replaced by `class-name'216 structures"217 (if (typep class-name 'class-name)218 (class-name-internal class-name)219 class-name))220 213 221 214 (defun !class-ref (class-name) … … 462 455 (stack-effect (cdr info)) 463 456 (index (if (null *current-code-attribute*) 464 (pool-method (!class-name class-name)method-name descriptor)457 (pool-method class-name method-name descriptor) 465 458 (pool-add-method-ref *pool* class-name 466 459 method-name (cons return-type arg-types)))) … … 472 465 (declaim (ftype (function t string) pretty-java-class)) 473 466 (defun pretty-java-class (class) 474 (cond ((equal (!class-name class) (!class-name +lisp-object+))467 (cond ((equal class +lisp-object+) 475 468 "LispObject") 476 469 ((equal class +lisp-symbol+) … … 487 480 (stack-effect (cdr info)) 488 481 (index (if (null *current-code-attribute*) 489 (pool-method (!class-name class-name)method-name descriptor)482 (pool-method class-name method-name descriptor) 490 483 (pool-add-method-ref *pool* class-name 491 484 method-name (cons return-type arg-types)))) … … 508 501 (stack-effect (cdr info)) 509 502 (index (if (null *current-code-attribute*) 510 (pool-method (!class-name class-name)"<init>" descriptor)503 (pool-method class-name "<init>" descriptor) 511 504 (pool-add-method-ref *pool* class-name 512 505 "<init>" (cons nil arg-types)))) … … 550 543 (defun emit-getstatic (class-name field-name type) 551 544 (let ((index (if (null *current-code-attribute*) 552 (pool-field (!class-name class-name) 553 field-name (!class-ref type)) 545 (pool-field class-name field-name (!class-ref type)) 554 546 (pool-add-field-ref *pool* class-name field-name type)))) 555 547 (apply #'%emit 'getstatic (u2 index)))) … … 558 550 (defun emit-putstatic (class-name field-name type) 559 551 (let ((index (if (null *current-code-attribute*) 560 (pool-field (!class-name class-name) 561 field-name (!class-ref type)) 552 (pool-field class-name field-name (!class-ref type)) 562 553 (pool-add-field-ref *pool* class-name field-name type)))) 563 554 (apply #'%emit 'putstatic (u2 index)))) … … 1228 1219 (define-resolver (180 181) (instruction) 1229 1220 (let* ((args (instruction-args instruction)) 1230 (index (pool-field ( !class-name (first args))1221 (index (pool-field (first args) 1231 1222 (second args) (!class-ref (third args))))) 1232 1223 (inst (instruction-opcode instruction) (u2 index)))) … … 1235 1226 (define-resolver (187 189 192 193) (instruction) 1236 1227 (let* ((args (instruction-args instruction)) 1237 (index (pool-class ( !class-name (first args)))))1228 (index (pool-class (first args)))) 1238 1229 (inst (instruction-opcode instruction) (u2 index)))) 1239 1230 … … 7877 7868 (let* ((super (abcl-class-file-superclass class-file)) 7878 7869 (this (abcl-class-file-class class-file)) 7879 (this-index (pool-class (!class-name this)))7880 (super-index (pool-class (!class-name super)))7870 (this-index (pool-class this)) 7871 (super-index (pool-class super)) 7881 7872 (constructor (make-constructor super 7882 7873 (abcl-class-file-lambda-name class-file)
Note: See TracChangeset
for help on using the changeset viewer.