--- old/src/share/vm/ci/ciObjectFactory.cpp 2009-12-02 17:37:44.927272421 +0100 +++ new/src/share/vm/ci/ciObjectFactory.cpp 2009-12-02 17:37:44.804753014 +0100 @@ -153,6 +153,10 @@ ciEnv::_ClassCastException = get(SystemDictionary::ClassCastException_klass()) ->as_instance_klass(); + if (EnableInvokeDynamic) { + ciEnv::_InvokeDynamic = + get(SystemDictionary::InvokeDynamic_klass())->as_instance_klass(); + } ciEnv::_Object = get(SystemDictionary::object_klass()) ->as_instance_klass(); @@ -340,6 +344,9 @@ } else if (o->is_typeArray()) { typeArrayHandle h_ta(THREAD, (typeArrayOop)o); return new (arena()) ciTypeArray(h_ta); + } else if (o->is_constantPoolCache()) { + constantPoolCacheHandle h_cpc(THREAD, (constantPoolCacheOop) o); + return new (arena()) ciCPCache(h_cpc); } // The oop is of some type not supported by the compiler interface.