Integrated: 8374113: Taughtological if check in Reflection::array_set

Stefan Karlsson stefank at openjdk.org
Mon Dec 22 09:58:02 UTC 2025


On Fri, 19 Dec 2025 10:32:43 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

> While reviewing code in the Valhalla repository I saw that Reflection::array_set has this funny-looking code:
> 
>   if (a->is_objArray()) {
>     if (value_type == T_OBJECT) {
>     ...
>     } // what happens in the else case? here
>   } else {
>     assert(a->is_typeArray(), "just checking");
>   }
> 
> And wondered what would happen if the `value_type == T_OBJECT` check failed, and how is this handled with flattened arrays, given that we have T_FLAT_ELEMENT there.
> 
> It turns out that the calling code passes down T_OBJECT even for flat arrays so they do take the `value_type == T_OBJECT` path, so that's fine.
> 
> So, I propose that we just replace one of the ifs with an assert.

This pull request has now been integrated.

Changeset: 551e6562
Author:    Stefan Karlsson <stefank at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/551e656218f18fa815d42e6035f85e907c6d66a4
Stats:     10 lines in 1 file changed: 1 ins; 2 del; 7 mod

8374113: Taughtological if check in Reflection::array_set

Reviewed-by: fparain, liach

-------------

PR: https://git.openjdk.org/jdk/pull/28921


More information about the hotspot-runtime-dev mailing list