comparison src/share/vm/ci/ciEnv.cpp @ 2273:2ab52cda08e5

Merge with OpenJDK.
author Thomas Wuerthinger <thomas.wuerthinger@gmail.com>
date Thu, 03 Mar 2011 19:25:53 +0100
parents d25d4ca69222 5841dc1964f0
children 0654ee04b214
comparison
equal deleted inserted replaced
2219:0a14ff0a8cc4 2273:2ab52cda08e5
411 fail_type = _unloaded_ciobjarrayklass; 411 fail_type = _unloaded_ciobjarrayklass;
412 } else { 412 } else {
413 fail_type = _unloaded_ciinstance_klass; 413 fail_type = _unloaded_ciinstance_klass;
414 } 414 }
415 KlassHandle found_klass; 415 KlassHandle found_klass;
416 if (!require_local) { 416 {
417 klassOop kls = SystemDictionary::find_constrained_instance_or_array_klass( 417 ttyUnlocker ttyul; // release tty lock to avoid ordering problems
418 sym, loader, KILL_COMPILE_ON_FATAL_(fail_type)); 418 MutexLocker ml(Compile_lock);
419 found_klass = KlassHandle(THREAD, kls); 419 klassOop kls;
420 } else { 420 if (!require_local) {
421 klassOop kls = SystemDictionary::find_instance_or_array_klass( 421 kls = SystemDictionary::find_constrained_instance_or_array_klass(sym, loader,
422 sym, loader, domain, KILL_COMPILE_ON_FATAL_(fail_type)); 422 KILL_COMPILE_ON_FATAL_(fail_type));
423 } else {
424 kls = SystemDictionary::find_instance_or_array_klass(sym, loader, domain,
425 KILL_COMPILE_ON_FATAL_(fail_type));
426 }
423 found_klass = KlassHandle(THREAD, kls); 427 found_klass = KlassHandle(THREAD, kls);
424 } 428 }
425 429
426 // If we fail to find an array klass, look again for its element type. 430 // If we fail to find an array klass, look again for its element type.
427 // The element type may be available either locally or via constraints. 431 // The element type may be available either locally or via constraints.