comparison src/share/vm/ci/ciEnv.cpp @ 2147:9afee0b9fc1d

7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220) Summary: Rebuild breakpoint cache at gc_epilogue instead of during oops_do Reviewed-by: dcubed, ysr, coleenp
author kamg
date Wed, 19 Jan 2011 13:51:53 -0800
parents f95d63e2154a
children 3582bf76420e
comparison
equal deleted inserted replaced
2146:2f33b03bd915 2147:9afee0b9fc1d
407 if (sym->byte_at(0) == '[') { 407 if (sym->byte_at(0) == '[') {
408 fail_type = _unloaded_ciobjarrayklass; 408 fail_type = _unloaded_ciobjarrayklass;
409 } else { 409 } else {
410 fail_type = _unloaded_ciinstance_klass; 410 fail_type = _unloaded_ciinstance_klass;
411 } 411 }
412 klassOop found_klass; 412 KlassHandle found_klass;
413 if (!require_local) { 413 if (!require_local) {
414 found_klass = 414 klassOop kls = SystemDictionary::find_constrained_instance_or_array_klass(
415 SystemDictionary::find_constrained_instance_or_array_klass(sym, loader, 415 sym, loader, KILL_COMPILE_ON_FATAL_(fail_type));
416 KILL_COMPILE_ON_FATAL_(fail_type)); 416 found_klass = KlassHandle(THREAD, kls);
417 } else { 417 } else {
418 found_klass = 418 klassOop kls = SystemDictionary::find_instance_or_array_klass(
419 SystemDictionary::find_instance_or_array_klass(sym, loader, domain, 419 sym, loader, domain, KILL_COMPILE_ON_FATAL_(fail_type));
420 KILL_COMPILE_ON_FATAL_(fail_type)); 420 found_klass = KlassHandle(THREAD, kls);
421 } 421 }
422 422
423 // If we fail to find an array klass, look again for its element type. 423 // If we fail to find an array klass, look again for its element type.
424 // The element type may be available either locally or via constraints. 424 // The element type may be available either locally or via constraints.
425 // In either case, if we can find the element type in the system dictionary, 425 // In either case, if we can find the element type in the system dictionary,
442 // Now make an array for it 442 // Now make an array for it
443 return ciObjArrayKlass::make_impl(elem_klass); 443 return ciObjArrayKlass::make_impl(elem_klass);
444 } 444 }
445 } 445 }
446 446
447 if (found_klass != NULL) { 447 if (found_klass() != NULL) {
448 // Found it. Build a CI handle. 448 // Found it. Build a CI handle.
449 return get_object(found_klass)->as_klass(); 449 return get_object(found_klass())->as_klass();
450 } 450 }
451 451
452 if (require_local) return NULL; 452 if (require_local) return NULL;
453 // Not yet loaded into the VM, or not governed by loader constraints. 453 // Not yet loaded into the VM, or not governed by loader constraints.
454 // Make a CI representative for it. 454 // Make a CI representative for it.