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