RFR(XS) 8129895: New verifier fails to reject erroneous cast from int[] to other arrays of small integer types
harold seigel
harold.seigel at oracle.com
Tue Jul 21 13:49:04 UTC 2015
Hi David,
Thanks for the review.
The new function is named is_component_assignable_from() because it is
similar to existing function is_assignable_from(). Also, the purpose of
the function is to check assignability of array components. It just so
happens that assignability for the integer primitives is determined by
identity, but that is not so for other array components that it checks.
>> I'm also wondering what the situation is with long[], float[] and
double[]?
The verifier correctly throws VerifyError when checking assignability
between arrays of different primitive types in cases of longs, floats,
and doubles.
Thanks, Harold
The new function checks for assignability of array components. For int
On 7/20/2015 9:49 PM, David Holmes wrote:
> Hi Harold,
>
> On 21/07/2015 4:29 AM, harold seigel wrote:
>> Hi,
>>
>> Please review this small change to fix bug 8129895. The split verifier
>> erroneously allows arrays of primitive ints to be assignable to arrays
>> of Booleans, bytes, chars, and shorts. This fix adds a new function
>> (is_component_assignable_from()) for explicitly checking assign-ability
>> of array components. The new function requires that primitive array
>> components be identical for assign-ability.
>>
>> Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8129895/
>
> My only nit here is that "is_assignable" doesn't reflect the actual
> check - it's is-equal for the primitives not is-assignable.
>
> I'm also wondering what the situation is with long[], float[] and
> double[]?
>
> Thanks,
> David
>
>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8129895
>>
>> The fix was tested with JCK Lang and VM tests, the UTE quick and split
>> verifier tests, and the hotspot, and JDK vm, java/io, java/lang, and
>> java/util JTreg tests.
>>
>> Thanks, Harold
More information about the hotspot-runtime-dev
mailing list