Mercurial > hg > graal-compiler
diff src/share/vm/ci/ciObjectFactory.cpp @ 6822:f6b0eb4e44cf
7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path
Reviewed-by: jrose, kvn
author | twisti |
---|---|
date | Mon, 01 Oct 2012 14:50:10 -0700 |
parents | da91efe96a93 |
children | 6e5a59a8e4a7 8e47bac5643a |
line wrap: on
line diff
--- a/src/share/vm/ci/ciObjectFactory.cpp Fri Sep 28 14:36:20 2012 -0700 +++ b/src/share/vm/ci/ciObjectFactory.cpp Mon Oct 01 14:50:10 2012 -0700 @@ -30,6 +30,7 @@ #include "ci/ciMethod.hpp" #include "ci/ciMethodData.hpp" #include "ci/ciMethodHandle.hpp" +#include "ci/ciMethodType.hpp" #include "ci/ciNullObject.hpp" #include "ci/ciObjArray.hpp" #include "ci/ciObjArrayKlass.hpp" @@ -237,23 +238,23 @@ assert(key == NULL || Universe::heap()->is_in_reserved(key), "must be"); - NonPermObject* &bucket = find_non_perm(key); - if (bucket != NULL) { - return bucket->object(); - } + NonPermObject* &bucket = find_non_perm(key); + if (bucket != NULL) { + return bucket->object(); + } - // The ciObject does not yet exist. Create it and insert it - // into the cache. - Handle keyHandle(key); - ciObject* new_object = create_new_object(keyHandle()); - assert(keyHandle() == new_object->get_oop(), "must be properly recorded"); - init_ident_of(new_object); + // The ciObject does not yet exist. Create it and insert it + // into the cache. + Handle keyHandle(key); + ciObject* new_object = create_new_object(keyHandle()); + assert(keyHandle() == new_object->get_oop(), "must be properly recorded"); + init_ident_of(new_object); assert(Universe::heap()->is_in_reserved(new_object->get_oop()), "must be"); - // Not a perm-space object. - insert_non_perm(bucket, keyHandle(), new_object); - return new_object; - } + // Not a perm-space object. + insert_non_perm(bucket, keyHandle(), new_object); + return new_object; +} // ------------------------------------------------------------------ // ciObjectFactory::get @@ -324,6 +325,8 @@ return new (arena()) ciMemberName(h_i); else if (java_lang_invoke_MethodHandle::is_instance(o)) return new (arena()) ciMethodHandle(h_i); + else if (java_lang_invoke_MethodType::is_instance(o)) + return new (arena()) ciMethodType(h_i); else return new (arena()) ciInstance(h_i); } else if (o->is_objArray()) {