comparison src/share/vm/ci/ciField.cpp @ 3461:81d815b05abb

7056328: JSR 292 invocation sometimes fails in adapters for types not on boot class path Reviewed-by: never
author jrose
date Thu, 23 Jun 2011 17:14:06 -0700
parents c7f3d0b4570f
children be4ca325525a e778c29768e6
comparison
equal deleted inserted replaced
3460:e9b51b4bdcc7 3461:81d815b05abb
285 ciType* ciField::compute_type() { 285 ciType* ciField::compute_type() {
286 GUARDED_VM_ENTRY(return compute_type_impl();) 286 GUARDED_VM_ENTRY(return compute_type_impl();)
287 } 287 }
288 288
289 ciType* ciField::compute_type_impl() { 289 ciType* ciField::compute_type_impl() {
290 ciKlass* type = CURRENT_ENV->get_klass_by_name_impl(_holder, _signature, false); 290 ciKlass* type = CURRENT_ENV->get_klass_by_name_impl(_holder, constantPoolHandle(), _signature, false);
291 if (!type->is_primitive_type() && is_shared()) { 291 if (!type->is_primitive_type() && is_shared()) {
292 // We must not cache a pointer to an unshared type, in a shared field. 292 // We must not cache a pointer to an unshared type, in a shared field.
293 bool type_is_also_shared = false; 293 bool type_is_also_shared = false;
294 if (type->is_type_array_klass()) { 294 if (type->is_type_array_klass()) {
295 type_is_also_shared = true; // int[] etc. are explicitly bootstrapped 295 type_is_also_shared = true; // int[] etc. are explicitly bootstrapped