comparison src/share/vm/runtime/javaCalls.cpp @ 1421:6223633ce7dd

changed VMExit/VMEntries to non-static, added eclipse c++ project, CIR interface changes
author Lukas Stadler <lukas.stadler@oracle.com>
date Fri, 23 Jul 2010 15:53:02 -0700
parents 09e7826ecf01
children 2d26b0046e0d
comparison
equal deleted inserted replaced
1420:44efca8a02d6 1421:6223633ce7dd
173 JavaCallArguments args(receiver); 173 JavaCallArguments args(receiver);
174 call(&result, method, &args, CHECK); 174 call(&result, method, &args, CHECK);
175 } 175 }
176 } 176 }
177 177
178 // ============ Interface calls ============
179
180 void JavaCalls::call_interface(JavaValue* result, KlassHandle spec_klass, symbolHandle name, symbolHandle signature, JavaCallArguments* args, TRAPS) {
181 CallInfo callinfo;
182 Handle receiver = args->receiver();
183 KlassHandle recvrKlass(THREAD, receiver.is_null() ? (klassOop)NULL : receiver->klass());
184 LinkResolver::resolve_interface_call(
185 callinfo, receiver, recvrKlass, spec_klass, name, signature,
186 KlassHandle(), false, true, CHECK);
187 methodHandle method = callinfo.selected_method();
188 assert(method.not_null(), "should have thrown exception");
189
190 // Invoke the method
191 JavaCalls::call(result, method, args, CHECK);
192 }
193
194
178 // ============ Virtual calls ============ 195 // ============ Virtual calls ============
179 196
180 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, symbolHandle name, symbolHandle signature, JavaCallArguments* args, TRAPS) { 197 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, symbolHandle name, symbolHandle signature, JavaCallArguments* args, TRAPS) {
181 CallInfo callinfo; 198 CallInfo callinfo;
182 Handle receiver = args->receiver(); 199 Handle receiver = args->receiver();