[armedbear-cvs] r11896 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Mon May 18 20:28:03 UTC 2009


Author: ehuelsmann
Date: Mon May 18 16:28:02 2009
New Revision: 11896

Log:
Followup to r11892: use the field class too
when caching, the caller assumes that specific
class.

Note to self: this definitely needs cleanup later.

Modified:
   trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
   trunk/abcl/src/org/armedbear/lisp/jvm.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp	Mon May 18 16:28:02 2009
@@ -2197,7 +2197,7 @@
 loading the object value into a field upon class-creation time.
 
 The field type of the object is specified by OBJ-REF."
-  (let ((field-name (gethash1 obj *declared-objects*)))
+  (let ((field-name (gethash1 (list obj obj-ref) *declared-objects*)))
     (if field-name
         field-name
       (let ((key (symbol-name (gensym "OBJ"))))
@@ -2213,7 +2213,7 @@
             (emit 'checkcast obj-class))
           (emit 'putstatic *this-class* g2 obj-ref)
           (setf *static-code* *code*)
-          (setf (gethash obj *declared-objects*) g2))))))
+          (setf (gethash (list obj obj-ref) *declared-objects*) g2))))))
 
 (defun declare-lambda (obj)
   (let* ((g (symbol-name (gensym "LAMBDA")))

Modified: trunk/abcl/src/org/armedbear/lisp/jvm.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/jvm.lisp	(original)
+++ trunk/abcl/src/org/armedbear/lisp/jvm.lisp	Mon May 18 16:28:02 2009
@@ -107,7 +107,7 @@
   (integers (make-hash-table :test 'eql))
   (floats (make-hash-table :test 'eql))
   (doubles (make-hash-table :test 'eql))
-  (objects (make-hash-table :test 'eq)))
+  (objects (make-hash-table :test 'equal)))
 
 (defun class-name-from-filespec (filespec)
   (let* ((name (pathname-name filespec)))




More information about the armedbear-cvs mailing list