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

Stefan Karlsson stefank at openjdk.org
Fri Dec 19 10:40:26 UTC 2025


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.

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

Commit messages:
 - 8374113: Taughtological if check in Reflection::array_set

Changes: https://git.openjdk.org/jdk/pull/28921/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28921&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8374113
  Stats: 10 lines in 1 file changed: 1 ins; 2 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/28921.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28921/head:pull/28921

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


More information about the hotspot-runtime-dev mailing list