Changeset 11898


Ignore:
Timestamp:
05/18/09 21:21:02 (9 years ago)
Author:
ehuelsmann
Message:

Revert r11892 and r11896 because they keep causing breakage
in different places.

We need general infrastructure for this problem. To come.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r11896 r11898  
    21982198
    21992199The 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))))
    22172214
    22182215(defun declare-lambda (obj)
  • trunk/abcl/src/org/armedbear/lisp/jvm.lisp

    r11896 r11898  
    8888(defvar *declared-floats* nil)
    8989(defvar *declared-doubles* nil)
    90 (defvar *declared-objects* nil)
    9190
    9291(defstruct (class-file (:constructor %make-class-file))
     
    107106  (integers (make-hash-table :test 'eql))
    108107  (floats (make-hash-table :test 'eql))
    109   (doubles (make-hash-table :test 'eql))
    110   (objects (make-hash-table :test 'equal)))
     108  (doubles (make-hash-table :test 'eql)))
    111109
    112110(defun class-name-from-filespec (filespec)
     
    140138            (*declared-integers*  (class-file-integers ,var))
    141139            (*declared-floats*    (class-file-floats ,var))
    142             (*declared-doubles*   (class-file-doubles ,var))
    143             (*declared-objects*   (class-file-objects ,var)))
     140            (*declared-doubles*   (class-file-doubles ,var)))
    144141       (progn ,@body)
    145142       (setf (class-file-pool ,var)         *pool*
     
    153150             (class-file-integers ,var)     *declared-integers*
    154151             (class-file-floats ,var)       *declared-floats*
    155              (class-file-doubles ,var)      *declared-doubles*
    156              (class-file-objects ,var)      *declared-objects*))))
     152             (class-file-doubles ,var)      *declared-doubles*))))
    157153
    158154(defstruct compiland
Note: See TracChangeset for help on using the changeset viewer.