--- old/src/hotspot/share/ci/ciMetadata.hpp 2019-03-11 14:25:23.238355749 +0100 +++ new/src/hotspot/share/ci/ciMetadata.hpp 2019-03-11 14:25:23.022355752 +0100 @@ -57,9 +57,12 @@ virtual bool is_method_data() const { return false; } virtual bool is_klass() const { return false; } virtual bool is_instance_klass() const { return false; } + virtual bool is_valuetype() const { return false; } virtual bool is_array_klass() const { return false; } + virtual bool is_value_array_klass() const { return false; } virtual bool is_obj_array_klass() const { return false; } virtual bool is_type_array_klass() const { return false; } + virtual bool is_wrapper() const { return false; } virtual void dump_replay_data(outputStream* st) { /* do nothing */ } ciMethod* as_method() { @@ -94,6 +97,10 @@ assert(is_array_klass(), "bad cast"); return (ciArrayKlass*)this; } + ciValueArrayKlass* as_value_array_klass() { + assert(is_value_array_klass(), "bad cast"); + return (ciValueArrayKlass*)this; + } ciObjArrayKlass* as_obj_array_klass() { assert(is_obj_array_klass(), "bad cast"); return (ciObjArrayKlass*)this; @@ -102,10 +109,18 @@ assert(is_type_array_klass(), "bad cast"); return (ciTypeArrayKlass*)this; } + ciValueKlass* as_value_klass() { + assert(is_valuetype(), "bad cast"); + return (ciValueKlass*)this; + } + ciWrapper* as_wrapper() { + assert(is_wrapper(), "bad cast"); + return (ciWrapper*)this; + } Metadata* constant_encoding() { return _metadata; } - bool equals(ciMetadata* obj) const { return (this == obj); } + virtual bool equals(ciMetadata* obj) const { return (this == obj); } int hash() { return ident() * 31; } // ???