hotspot/src/share/vm/classfile/systemDictionary.cpp
changeset 9630 d6419e4395e3
parent 9172 a4e13ccafc44
child 10008 d84de97ad847
equal deleted inserted replaced
9629:1f4dc6af5ad8 9630:d6419e4395e3
  2360     if (found_on_bcp) {
  2360     if (found_on_bcp) {
  2361       MutexLocker ml(SystemDictionary_lock, Thread::current());
  2361       MutexLocker ml(SystemDictionary_lock, Thread::current());
  2362       spe = invoke_method_table()->find_entry(index, hash, signature, name_id);
  2362       spe = invoke_method_table()->find_entry(index, hash, signature, name_id);
  2363       if (spe == NULL)
  2363       if (spe == NULL)
  2364         spe = invoke_method_table()->add_entry(index, hash, signature, name_id);
  2364         spe = invoke_method_table()->add_entry(index, hash, signature, name_id);
  2365       if (spe->property_oop() == NULL)
  2365       if (spe->property_oop() == NULL) {
  2366         spe->set_property_oop(m());
  2366         spe->set_property_oop(m());
       
  2367         // Link m to his method type, if it is suitably generic.
       
  2368         oop mtform = java_lang_invoke_MethodType::form(mt());
       
  2369         if (mtform != NULL && mt() == java_lang_invoke_MethodTypeForm::erasedType(mtform)
       
  2370             && java_lang_invoke_MethodTypeForm::vmlayout_offset_in_bytes() > 0) {
       
  2371           java_lang_invoke_MethodTypeForm::init_vmlayout(mtform, m());
       
  2372         }
       
  2373       }
  2367     } else {
  2374     } else {
  2368       non_cached_result = m;
  2375       non_cached_result = m;
  2369     }
  2376     }
  2370   }
  2377   }
  2371   if (spe != NULL && spe->property_oop() != NULL) {
  2378   if (spe != NULL && spe->property_oop() != NULL) {