hotspot/src/share/vm/runtime/sharedRuntime.cpp
changeset 9323 20cc2230dc8a
parent 9117 30d757743e56
child 9630 d6419e4395e3
equal deleted inserted replaced
9141:b9b83b001cac 9323:20cc2230dc8a
  1719           && required == target->method_handle_type()) {
  1719           && required == target->method_handle_type()) {
  1720         targetType = target->signature()->as_C_string();
  1720         targetType = target->signature()->as_C_string();
  1721         targetArity = ArgumentCount(target->signature()).size();
  1721         targetArity = ArgumentCount(target->signature()).size();
  1722       }
  1722       }
  1723     }
  1723     }
  1724     klassOop kignore; int dmf_flags = 0;
  1724     KlassHandle kignore; int dmf_flags = 0;
  1725     methodOop actual_method = MethodHandles::decode_method(actual, kignore, dmf_flags);
  1725     methodHandle actual_method = MethodHandles::decode_method(actual, kignore, dmf_flags);
  1726     if ((dmf_flags & ~(MethodHandles::_dmf_has_receiver |
  1726     if ((dmf_flags & ~(MethodHandles::_dmf_has_receiver |
  1727                        MethodHandles::_dmf_does_dispatch |
  1727                        MethodHandles::_dmf_does_dispatch |
  1728                        MethodHandles::_dmf_from_interface)) != 0)
  1728                        MethodHandles::_dmf_from_interface)) != 0)
  1729       actual_method = NULL;  // MH does extra binds, drops, etc.
  1729       actual_method = methodHandle();  // MH does extra binds, drops, etc.
  1730     bool has_receiver = ((dmf_flags & MethodHandles::_dmf_has_receiver) != 0);
  1730     bool has_receiver = ((dmf_flags & MethodHandles::_dmf_has_receiver) != 0);
  1731     if (actual_method != NULL) {
  1731     if (actual_method.not_null()) {
  1732       mhName = actual_method->signature()->as_C_string();
  1732       mhName = actual_method->signature()->as_C_string();
  1733       mhArity = ArgumentCount(actual_method->signature()).size();
  1733       mhArity = ArgumentCount(actual_method->signature()).size();
  1734       if (!actual_method->is_static())  mhArity += 1;
  1734       if (!actual_method->is_static())  mhArity += 1;
  1735     } else if (java_lang_invoke_MethodHandle::is_instance(actual)) {
  1735     } else if (java_lang_invoke_MethodHandle::is_instance(actual)) {
  1736       oopDesc* mhType = java_lang_invoke_MethodHandle::type(actual);
  1736       oopDesc* mhType = java_lang_invoke_MethodHandle::type(actual);