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

Reply via email to