< prev index next >

src/hotspot/share/prims/methodHandles.cpp

Print this page

        

@@ -236,12 +236,17 @@
       tty->print_cr("memberName: invokeinterface method_holder::method: %s, itableindex: %d, access_flags:",
             Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()),
             vmindex);
        m->access_flags().print_on(tty);
        if (!m->is_abstract()) {
+         if (!m->is_private()) {
          tty->print("default");
        }
+         else {
+           tty->print("private-intf");
+         }
+       }
        tty->cr();
     }
     break;
 
   case CallInfo::vtable_call:

@@ -290,10 +295,13 @@
     if (m->is_static()) {
       flags |= IS_METHOD      | (JVM_REF_invokeStatic  << REFERENCE_KIND_SHIFT);
     } else if (m->is_initializer()) {
       flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
     } else {
+      // "special" reflects that this is a direct call, not that it
+      // necessarily originates from an invokespecial. We can also do
+      // direct calls for private and/or final non-static methods.
       flags |= IS_METHOD      | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
     }
     break;
 
   default:  assert(false, "bad CallInfo");  return NULL;
< prev index next >