< prev index next >

src/hotspot/share/prims/methodHandles.cpp

Print this page




 280       ttyLocker ttyl;
 281       ResourceMark rm;
 282       tty->print_cr("memberName: invokevirtual method_holder::method: %s, receiver: %s, vtableindex: %d, access_flags:",
 283             Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()),
 284             m_klass->internal_name(), vmindex);
 285        m->access_flags().print_on(tty);
 286        if (m->is_default_method()) {
 287          tty->print("default");
 288        }
 289        tty->cr();
 290     }
 291     break;
 292 
 293   case CallInfo::direct_call:
 294     vmindex = Method::nonvirtual_vtable_index;
 295     if (m->is_static()) {
 296       flags |= IS_METHOD      | (JVM_REF_invokeStatic  << REFERENCE_KIND_SHIFT);
 297     } else if (m->is_initializer()) {
 298       flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
 299     } else {


 300       flags |= IS_METHOD      | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
 301     }
 302     break;
 303 
 304   default:  assert(false, "bad CallInfo");  return NULL;
 305   }
 306 
 307   // @CallerSensitive annotation detected
 308   if (m->caller_sensitive()) {
 309     flags |= CALLER_SENSITIVE;
 310   }
 311 
 312   Handle resolved_method = info.resolved_method_name();
 313   assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m(),
 314          "Should not change after link resolution");
 315 
 316   oop mname_oop = mname();
 317   java_lang_invoke_MemberName::set_flags  (mname_oop, flags);
 318   java_lang_invoke_MemberName::set_method (mname_oop, resolved_method());
 319   java_lang_invoke_MemberName::set_vmindex(mname_oop, vmindex);   // vtable/itable index




 280       ttyLocker ttyl;
 281       ResourceMark rm;
 282       tty->print_cr("memberName: invokevirtual method_holder::method: %s, receiver: %s, vtableindex: %d, access_flags:",
 283             Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()),
 284             m_klass->internal_name(), vmindex);
 285        m->access_flags().print_on(tty);
 286        if (m->is_default_method()) {
 287          tty->print("default");
 288        }
 289        tty->cr();
 290     }
 291     break;
 292 
 293   case CallInfo::direct_call:
 294     vmindex = Method::nonvirtual_vtable_index;
 295     if (m->is_static()) {
 296       flags |= IS_METHOD      | (JVM_REF_invokeStatic  << REFERENCE_KIND_SHIFT);
 297     } else if (m->is_initializer()) {
 298       flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
 299     } else {
 300       // "special" implies a direct call here, regardless of whether we are
 301       // dealing with classes or interfaces
 302       flags |= IS_METHOD      | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
 303     }
 304     break;
 305 
 306   default:  assert(false, "bad CallInfo");  return NULL;
 307   }
 308 
 309   // @CallerSensitive annotation detected
 310   if (m->caller_sensitive()) {
 311     flags |= CALLER_SENSITIVE;
 312   }
 313 
 314   Handle resolved_method = info.resolved_method_name();
 315   assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m(),
 316          "Should not change after link resolution");
 317 
 318   oop mname_oop = mname();
 319   java_lang_invoke_MemberName::set_flags  (mname_oop, flags);
 320   java_lang_invoke_MemberName::set_method (mname_oop, resolved_method());
 321   java_lang_invoke_MemberName::set_vmindex(mname_oop, vmindex);   // vtable/itable index


< prev index next >