equal
deleted
inserted
replaced
353 // called with a frame corresponding to a Java invoke |
353 // called with a frame corresponding to a Java invoke |
354 void CompiledMethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { |
354 void CompiledMethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { |
355 if (method() != NULL && !method()->is_native()) { |
355 if (method() != NULL && !method()->is_native()) { |
356 address pc = fr.pc(); |
356 address pc = fr.pc(); |
357 SimpleScopeDesc ssd(this, pc); |
357 SimpleScopeDesc ssd(this, pc); |
358 Bytecode_invoke call(ssd.method(), ssd.bci()); |
358 Bytecode_invoke call(methodHandle(Thread::current(), ssd.method()), ssd.bci()); |
359 bool has_receiver = call.has_receiver(); |
359 bool has_receiver = call.has_receiver(); |
360 bool has_appendix = call.has_appendix(); |
360 bool has_appendix = call.has_appendix(); |
361 Symbol* signature = call.signature(); |
361 Symbol* signature = call.signature(); |
362 |
362 |
363 // The method attached by JIT-compilers should be used, if present. |
363 // The method attached by JIT-compilers should be used, if present. |