8266017: Refactor the *klass::array_klass_impl code to separate the non-exception-throwing API

Reviewed-by: coleenp, iklam
This commit is contained in:
David Holmes 2021-04-28 20:52:50 +00:00
parent f75dd80254
commit 23180f848f
8 changed files with 86 additions and 72 deletions

View file

@ -95,14 +95,14 @@ class ObjArrayKlass : public ArrayKlass {
void do_copy(arrayOop s, size_t src_offset,
arrayOop d, size_t dst_offset,
int length, TRAPS);
protected:
public:
// Returns the ObjArrayKlass for n'th dimension.
virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
virtual Klass* array_klass(int n, TRAPS);
virtual Klass* array_klass_or_null(int n);
// Returns the array class with this class as element type.
virtual Klass* array_klass_impl(bool or_null, TRAPS);
public:
virtual Klass* array_klass(TRAPS);
virtual Klass* array_klass_or_null();
static ObjArrayKlass* cast(Klass* k) {
return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));