Request for reviews (S): 7081938: JSR292: assert(magic_number_2() == MAGIC_NUMBER_2) failed

Christian Thalinger CHRISTIAN.THALINGER at oracle.com
Mon Oct 10 06:20:59 PDT 2011


http://cr.openjdk.java.net/~twisti/7081938/

7081938: JSR292: assert(magic_number_2() == MAGIC_NUMBER_2) failed
Reviewed-by:

MethodHandles::ricochet_frame_sender uses
RicochetFrame::extended_sender_sp to create the frame for the ricochet
frame.  extended_sender_sp returns the _saved_args_base.

In a debug VM there is another slot pushed below the saved_args_base
in _adapter_opt_collect/filter/fold; this is MAGIC_NUMBER_2.

The fix is to return a correct value for extended_sender_sp.

It's possible that this bug results in crashes or program failures
with a product build when the extra_slots in collect/filter/fold
adapters is > 0.

src/cpu/x86/vm/methodHandles_x86.hpp
src/cpu/x86/vm/methodHandles_x86.cpp
src/cpu/x86/vm/frame_x86.cpp



More information about the hotspot-compiler-dev mailing list