hotspot/src/share/vm/ci/ciObjectFactory.cpp
changeset 4567 7fc02fbe5c7a
parent 4566 b363f6ef4068
child 4571 80b553bddc26
--- a/hotspot/src/share/vm/ci/ciObjectFactory.cpp	Tue Jan 05 13:05:58 2010 +0100
+++ b/hotspot/src/share/vm/ci/ciObjectFactory.cpp	Tue Jan 05 15:21:25 2010 +0100
@@ -337,7 +337,12 @@
     return new (arena()) ciMethodData(h_md);
   } else if (o->is_instance()) {
     instanceHandle h_i(THREAD, (instanceOop)o);
-    return new (arena()) ciInstance(h_i);
+    if (java_dyn_CallSite::is_instance(o))
+      return new (arena()) ciCallSite(h_i);
+    else if (java_dyn_MethodHandle::is_instance(o))
+      return new (arena()) ciMethodHandle(h_i);
+    else
+      return new (arena()) ciInstance(h_i);
   } else if (o->is_objArray()) {
     objArrayHandle h_oa(THREAD, (objArrayOop)o);
     return new (arena()) ciObjArray(h_oa);