Changeset 11898 for trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
- Timestamp:
- 05/18/09 21:21:02 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11896 r11898 2198 2198 2199 2199 The field type of the object is specified by OBJ-REF." 2200 (let ((field-name (gethash1 (list obj obj-ref) *declared-objects*))) 2201 (if field-name 2202 field-name 2203 (let ((key (symbol-name (gensym "OBJ")))) 2204 (remember key obj) 2205 (let* ((g1 (declare-string key)) 2206 (g2 (symbol-name (gensym "O2BJ"))) 2207 (*code* *static-code*)) 2208 (declare-field g2 obj-ref) 2209 (emit 'getstatic *this-class* g1 +lisp-simple-string+) 2210 (emit-invokestatic +lisp-class+ "recall" 2211 (list +lisp-simple-string+) +lisp-object+) 2212 (when (and obj-class (string/= obj-class +lisp-object-class+)) 2213 (emit 'checkcast obj-class)) 2214 (emit 'putstatic *this-class* g2 obj-ref) 2215 (setf *static-code* *code*) 2216 (setf (gethash (list obj obj-ref) *declared-objects*) g2)))))) 2200 (let ((key (symbol-name (gensym "OBJ")))) 2201 (remember key obj) 2202 (let* ((g1 (declare-string key)) 2203 (g2 (symbol-name (gensym "O2BJ")))) 2204 (let* ((*code* *static-code*)) 2205 (declare-field g2 obj-ref) 2206 (emit 'getstatic *this-class* g1 +lisp-simple-string+) 2207 (emit-invokestatic +lisp-class+ "recall" 2208 (list +lisp-simple-string+) +lisp-object+) 2209 (when (and obj-class (string/= obj-class +lisp-object-class+)) 2210 (emit 'checkcast obj-class)) 2211 (emit 'putstatic *this-class* g2 obj-ref) 2212 (setf *static-code* *code*) 2213 g2)))) 2217 2214 2218 2215 (defun declare-lambda (obj)
Note: See TracChangeset
for help on using the changeset viewer.