RFR(S): 8009981: nashorn tests fail with -XX:+VerifyStack
Roland Westrelin
roland.westrelin at oracle.com
Tue Mar 19 06:00:08 PDT 2013
Hi John,
Thanks for taking a look at this.
> All this background is to say, maybe (maybe!) the logic in deoptimization.cpp should be calling has_appendix on the call site, not has_member_arg on the method.
This logic mirrors the one in vframeArray::unpack_to_stack().
The code walks the stack from the top frame. callee_size_of_parameters is mh->size_of_parameters(), for the previous frame so it includes the appendix, right?
In any case, the callee_size_of_parameters shouldn't be performed for the top frame (the i != 0 test below was missing):
if (i != 0 && !invoke.is_invokedynamic() && MethodHandles::has_member_arg(invoke.klass(), invoke.name())) {
callee_size_of_parameters++;
}
Roland.
More information about the hotspot-compiler-dev
mailing list