Adapter sharing is broken with -XX:+ValueTypePassFieldsAsArgs

Roland Westrelin rwestrel at redhat.com
Tue Mar 28 11:07:58 UTC 2017


> Because we would still treat these signatures as equal (MyValue has an int field):
>
> m1(MyValue v) -> (T_VALUETYPE, T_INT, T_VOID)
> m2(Object o1, int i, Object o2) -> (T_OBJECT, T_INT, T_OBJECT)
>
> Which is not correct because we cannot use the adapter for m2 to pass a value type to m1.

I see. But T_VOID doesn't become T_OBJECT, right?
Anyway, your change looks good.

Roland.


More information about the valhalla-dev mailing list