Mercurial > hg > graal-jvmci-8
comparison src/share/vm/code/nmethod.cpp @ 10390:28e5aed7f3a6
8009981: nashorn tests fail with -XX:+VerifyStack
Summary: nmethod::preserve_callee_argument_oops() must take appendix into account.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Fri, 31 May 2013 14:40:26 +0200 |
parents | 4674e409a9e6 |
children | 836a62f43af9 ef57c43512d6 |
comparison
equal
deleted
inserted
replaced
10389:f15fe46d8c00 | 10390:28e5aed7f3a6 |
---|---|
1974 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { | 1974 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { |
1975 #ifndef SHARK | 1975 #ifndef SHARK |
1976 if (!method()->is_native()) { | 1976 if (!method()->is_native()) { |
1977 SimpleScopeDesc ssd(this, fr.pc()); | 1977 SimpleScopeDesc ssd(this, fr.pc()); |
1978 Bytecode_invoke call(ssd.method(), ssd.bci()); | 1978 Bytecode_invoke call(ssd.method(), ssd.bci()); |
1979 // compiled invokedynamic call sites have an implicit receiver at | 1979 bool has_receiver = call.has_receiver(); |
1980 // resolution time, so make sure it gets GC'ed. | 1980 bool has_appendix = call.has_appendix(); |
1981 bool has_receiver = !call.is_invokestatic(); | |
1982 Symbol* signature = call.signature(); | 1981 Symbol* signature = call.signature(); |
1983 fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f); | 1982 fr.oops_compiled_arguments_do(signature, has_receiver, has_appendix, reg_map, f); |
1984 } | 1983 } |
1985 #endif // !SHARK | 1984 #endif // !SHARK |
1986 } | 1985 } |
1987 | 1986 |
1988 | 1987 |