On Fri, 13 Mar 2026 12:01:12 GMT, Stefan Karlsson <[email protected]> wrote:
> This will help reducing the number of casts.
>
> `Runtime1::store_flat_array` had an incorrect type and had to be fixed.
Found the following through this
diff --git a/src/hotspot/share/oops/flatArrayKlass.hpp
b/src/hotspot/share/oops/flatArrayKlass.hpp
index 90c4552db79..214d9984b80 100644
--- a/src/hotspot/share/oops/flatArrayKlass.hpp
+++ b/src/hotspot/share/oops/flatArrayKlass.hpp
@@ -68,6 +68,9 @@ class FlatArrayKlass : public ObjArrayKlass {
return static_cast<const FlatArrayKlass*>(k);
}
+ static FlatArrayKlass* cast(FlatArrayKlass*) = delete;
+ static const FlatArrayKlass* cast(const FlatArrayKlass*) = delete;
+
// klass allocation
static FlatArrayKlass* allocate_klass(Klass* element_klass, ArrayProperties
props, LayoutKind lk, TRAPS);
diff --git a/src/hotspot/share/oops/refArrayKlass.hpp
b/src/hotspot/share/oops/refArrayKlass.hpp
index 38a8ff069eb..0635c5ac51f 100644
--- a/src/hotspot/share/oops/refArrayKlass.hpp
+++ b/src/hotspot/share/oops/refArrayKlass.hpp
@@ -86,6 +86,9 @@ class RefArrayKlass : public ObjArrayKlass {
return static_cast<const RefArrayKlass *>(k);
}
+ static RefArrayKlass* cast(RefArrayKlass*) = delete;
+ static const RefArrayKlass* cast(const RefArrayKlass*) = delete;
+
// Sizing
static int header_size() { return sizeof(RefArrayKlass) / wordSize; }
int size() const override { return ArrayKlass::static_size(header_size()); }
diff --git a/src/hotspot/share/oops/valuePayload.inline.hpp
b/src/hotspot/share/oops/valuePayload.inline.hpp
index 3b524c03682..4b0abc33502 100644
--- a/src/hotspot/share/oops/valuePayload.inline.hpp
+++ b/src/hotspot/share/oops/valuePayload.inline.hpp
@@ -672,7 +672,7 @@ inline FlatArrayPayload::FlatArrayPayload(flatArrayOop
container,
_storage{layout_helper, element_size} {}
inline FlatArrayPayload::FlatArrayPayload(flatArrayOop container)
- : FlatArrayPayload(container, FlatArrayKlass::cast(container->klass())) {}
+ : FlatArrayPayload(container, container->klass()) {}
inline FlatArrayPayload::FlatArrayPayload(flatArrayOop container,
FlatArrayKlass* klass)
: FlatArrayPayload(container,
@@ -685,7 +685,7 @@ inline FlatArrayPayload::FlatArrayPayload(flatArrayOop
container, FlatArrayKlass
}
inline FlatArrayPayload::FlatArrayPayload(flatArrayOop container, int index)
- : FlatArrayPayload(container, index,
FlatArrayKlass::cast(container->klass())) {}
+ : FlatArrayPayload(container, index, container->klass()) {}
inline FlatArrayPayload::FlatArrayPayload(flatArrayOop container,
int index,
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/2224#issuecomment-4054729991