hotspot/src/share/vm/runtime/javaCalls.cpp
changeset 38719 133bf85c3f36
parent 38139 cf6f5c1b7205
child 39390 edf6a424a8b7
equal deleted inserted replaced
38708:8c27a4f8b242 38719:133bf85c3f36
   181 
   181 
   182 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   182 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   183   CallInfo callinfo;
   183   CallInfo callinfo;
   184   Handle receiver = args->receiver();
   184   Handle receiver = args->receiver();
   185   KlassHandle recvrKlass(THREAD, receiver.is_null() ? (Klass*)NULL : receiver->klass());
   185   KlassHandle recvrKlass(THREAD, receiver.is_null() ? (Klass*)NULL : receiver->klass());
   186   LinkInfo link_info(spec_klass, name, signature, KlassHandle(), /*check_access*/false);
   186   LinkInfo link_info(spec_klass, name, signature);
   187   LinkResolver::resolve_virtual_call(
   187   LinkResolver::resolve_virtual_call(
   188           callinfo, receiver, recvrKlass, link_info, true, CHECK);
   188           callinfo, receiver, recvrKlass, link_info, true, CHECK);
   189   methodHandle method = callinfo.selected_method();
   189   methodHandle method = callinfo.selected_method();
   190   assert(method.not_null(), "should have thrown exception");
   190   assert(method.not_null(), "should have thrown exception");
   191 
   191 
   218 
   218 
   219 // ============ Special calls ============
   219 // ============ Special calls ============
   220 
   220 
   221 void JavaCalls::call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   221 void JavaCalls::call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   222   CallInfo callinfo;
   222   CallInfo callinfo;
   223   LinkInfo link_info(klass, name, signature, KlassHandle(), /*check_access*/false);
   223   LinkInfo link_info(klass, name, signature);
   224   LinkResolver::resolve_special_call(callinfo, link_info, CHECK);
   224   LinkResolver::resolve_special_call(callinfo, link_info, CHECK);
   225   methodHandle method = callinfo.selected_method();
   225   methodHandle method = callinfo.selected_method();
   226   assert(method.not_null(), "should have thrown exception");
   226   assert(method.not_null(), "should have thrown exception");
   227 
   227 
   228   // Invoke the method
   228   // Invoke the method
   253 
   253 
   254 // ============ Static calls ============
   254 // ============ Static calls ============
   255 
   255 
   256 void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   256 void JavaCalls::call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   257   CallInfo callinfo;
   257   CallInfo callinfo;
   258   LinkInfo link_info(klass, name, signature, KlassHandle(), /*check_access*/false);
   258   LinkInfo link_info(klass, name, signature);
   259   LinkResolver::resolve_static_call(callinfo, link_info, true, CHECK);
   259   LinkResolver::resolve_static_call(callinfo, link_info, true, CHECK);
   260   methodHandle method = callinfo.selected_method();
   260   methodHandle method = callinfo.selected_method();
   261   assert(method.not_null(), "should have thrown exception");
   261   assert(method.not_null(), "should have thrown exception");
   262 
   262 
   263   // Invoke the method
   263   // Invoke the method