equal
deleted
inserted
replaced
236 tty->print_cr("memberName: invokeinterface method_holder::method: %s, itableindex: %d, access_flags:", |
236 tty->print_cr("memberName: invokeinterface method_holder::method: %s, itableindex: %d, access_flags:", |
237 Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()), |
237 Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()), |
238 vmindex); |
238 vmindex); |
239 m->access_flags().print_on(tty); |
239 m->access_flags().print_on(tty); |
240 if (!m->is_abstract()) { |
240 if (!m->is_abstract()) { |
241 tty->print("default"); |
241 if (!m->is_private()) { |
|
242 tty->print("default"); |
|
243 } |
|
244 else { |
|
245 tty->print("private-intf"); |
|
246 } |
242 } |
247 } |
243 tty->cr(); |
248 tty->cr(); |
244 } |
249 } |
245 break; |
250 break; |
246 |
251 |
290 if (m->is_static()) { |
295 if (m->is_static()) { |
291 flags |= IS_METHOD | (JVM_REF_invokeStatic << REFERENCE_KIND_SHIFT); |
296 flags |= IS_METHOD | (JVM_REF_invokeStatic << REFERENCE_KIND_SHIFT); |
292 } else if (m->is_initializer()) { |
297 } else if (m->is_initializer()) { |
293 flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT); |
298 flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT); |
294 } else { |
299 } else { |
|
300 // "special" reflects that this is a direct call, not that it |
|
301 // necessarily originates from an invokespecial. We can also do |
|
302 // direct calls for private and/or final non-static methods. |
295 flags |= IS_METHOD | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT); |
303 flags |= IS_METHOD | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT); |
296 } |
304 } |
297 break; |
305 break; |
298 |
306 |
299 default: assert(false, "bad CallInfo"); return NULL; |
307 default: assert(false, "bad CallInfo"); return NULL; |