hotspot/src/share/vm/classfile/systemDictionary.cpp
changeset 4564 55dfb20908d0
parent 4446 73f83d9d3e9c
child 4571 80b553bddc26
equal deleted inserted replaced
4563:973da517fcec 4564:55dfb20908d0
  1982   if (_well_known_klasses[meth_group_start] == NULL) {
  1982   if (_well_known_klasses[meth_group_start] == NULL) {
  1983     // Skip the rest of the method handle classes, if MethodHandle is not loaded.
  1983     // Skip the rest of the method handle classes, if MethodHandle is not loaded.
  1984     scan = WKID(meth_group_end+1);
  1984     scan = WKID(meth_group_end+1);
  1985   }
  1985   }
  1986   WKID indy_group_start = WK_KLASS_ENUM_NAME(Linkage_klass);
  1986   WKID indy_group_start = WK_KLASS_ENUM_NAME(Linkage_klass);
  1987   WKID indy_group_end   = WK_KLASS_ENUM_NAME(Dynamic_klass);
  1987   WKID indy_group_end   = WK_KLASS_ENUM_NAME(InvokeDynamic_klass);
  1988   initialize_wk_klasses_until(indy_group_start, scan, CHECK);
  1988   initialize_wk_klasses_until(indy_group_start, scan, CHECK);
  1989   if (EnableInvokeDynamic) {
  1989   if (EnableInvokeDynamic) {
  1990     initialize_wk_klasses_through(indy_group_end, scan, CHECK);
  1990     initialize_wk_klasses_through(indy_group_end, scan, CHECK);
  1991   }
  1991   }
  1992   if (_well_known_klasses[indy_group_start] == NULL) {
  1992   if (_well_known_klasses[indy_group_start] == NULL) {
  2338   unsigned int hash  = invoke_method_table()->compute_hash(signature);
  2338   unsigned int hash  = invoke_method_table()->compute_hash(signature);
  2339   int          index = invoke_method_table()->hash_to_index(hash);
  2339   int          index = invoke_method_table()->hash_to_index(hash);
  2340   SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature);
  2340   SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature);
  2341   if (spe == NULL || spe->property_oop() == NULL) {
  2341   if (spe == NULL || spe->property_oop() == NULL) {
  2342     // Must create lots of stuff here, but outside of the SystemDictionary lock.
  2342     // Must create lots of stuff here, but outside of the SystemDictionary lock.
       
  2343     if (THREAD->is_Compiler_thread())
       
  2344       return NULL;              // do not attempt from within compiler
  2343     Handle mt = compute_method_handle_type(signature(),
  2345     Handle mt = compute_method_handle_type(signature(),
  2344                                            class_loader, protection_domain,
  2346                                            class_loader, protection_domain,
  2345                                            CHECK_NULL);
  2347                                            CHECK_NULL);
  2346     KlassHandle  mh_klass = SystemDictionaryHandles::MethodHandle_klass();
  2348     KlassHandle  mh_klass = SystemDictionaryHandles::MethodHandle_klass();
  2347     methodHandle m = methodOopDesc::make_invoke_method(mh_klass, signature,
  2349     methodHandle m = methodOopDesc::make_invoke_method(mh_klass, signature,