410 fail_type = _unloaded_ciobjarrayklass; |
410 fail_type = _unloaded_ciobjarrayklass; |
411 } else { |
411 } else { |
412 fail_type = _unloaded_ciinstance_klass; |
412 fail_type = _unloaded_ciinstance_klass; |
413 } |
413 } |
414 KlassHandle found_klass; |
414 KlassHandle found_klass; |
415 if (!require_local) { |
415 { |
416 klassOop kls = SystemDictionary::find_constrained_instance_or_array_klass( |
416 MutexLocker ml(Compile_lock); |
417 sym, loader, KILL_COMPILE_ON_FATAL_(fail_type)); |
417 klassOop kls; |
418 found_klass = KlassHandle(THREAD, kls); |
418 if (!require_local) { |
419 } else { |
419 kls = SystemDictionary::find_constrained_instance_or_array_klass(sym, loader, |
420 klassOop kls = SystemDictionary::find_instance_or_array_klass( |
420 KILL_COMPILE_ON_FATAL_(fail_type)); |
421 sym, loader, domain, KILL_COMPILE_ON_FATAL_(fail_type)); |
421 } else { |
|
422 kls = SystemDictionary::find_instance_or_array_klass(sym, loader, domain, |
|
423 KILL_COMPILE_ON_FATAL_(fail_type)); |
|
424 } |
422 found_klass = KlassHandle(THREAD, kls); |
425 found_klass = KlassHandle(THREAD, kls); |
423 } |
426 } |
424 |
427 |
425 // If we fail to find an array klass, look again for its element type. |
428 // If we fail to find an array klass, look again for its element type. |
426 // The element type may be available either locally or via constraints. |
429 // The element type may be available either locally or via constraints. |