src/share/vm/interpreter/linkResolver.cpp

changeset 1494
389049f3f393
parent 1161
be93aad57795
child 1570
e66fd840cb6b
equal deleted inserted replaced
1493:73a726751507 1494:389049f3f393
1013 void LinkResolver::resolve_invokedynamic(CallInfo& result, constantPoolHandle pool, int raw_index, TRAPS) { 1013 void LinkResolver::resolve_invokedynamic(CallInfo& result, constantPoolHandle pool, int raw_index, TRAPS) {
1014 assert(EnableInvokeDynamic, ""); 1014 assert(EnableInvokeDynamic, "");
1015 1015
1016 // This guy is reached from InterpreterRuntime::resolve_invokedynamic. 1016 // This guy is reached from InterpreterRuntime::resolve_invokedynamic.
1017 1017
1018 assert(constantPoolCacheOopDesc::is_secondary_index(raw_index), "must be secondary index");
1019 int nt_index = pool->map_instruction_operand_to_index(raw_index);
1020
1021 // At this point, we only need the signature, and can ignore the name. 1018 // At this point, we only need the signature, and can ignore the name.
1022 symbolHandle method_signature(THREAD, pool->nt_signature_ref_at(nt_index)); 1019 symbolHandle method_signature(THREAD, pool->signature_ref_at(raw_index)); // raw_index works directly
1023 symbolHandle method_name = vmSymbolHandles::invoke_name(); 1020 symbolHandle method_name = vmSymbolHandles::invoke_name();
1024 KlassHandle resolved_klass = SystemDictionaryHandles::MethodHandle_klass(); 1021 KlassHandle resolved_klass = SystemDictionaryHandles::MethodHandle_klass();
1025 1022
1026 // JSR 292: this must be an implicitly generated method MethodHandle.invoke(*...) 1023 // JSR 292: this must be an implicitly generated method MethodHandle.invoke(*...)
1027 // The extra MH receiver will be inserted into the stack on every call. 1024 // The extra MH receiver will be inserted into the stack on every call.

mercurial