Adapter sharing is broken with -XX:+ValueTypePassFieldsAsArgs
tobias.hartmann at oracle.com
Mon Mar 27 13:31:24 UTC 2017
please review the following fix:
The C2I and I2C adapters of different methods are shared if the methods have a matching signature. Arguments of type T_BOOLEAN, T_BYTE, T_SHORT and T_CHAR are widened to type T_INT. This does not work with -XX:+ValueTypePassFieldsAsArgs because value types are passed field-by-field and to be able to load/store the correct values from/to the buffer, we need an adapter that matches with the exact field type in the signature.
Thanks to Fred for catching and reporting this issue!
More information about the valhalla-dev