8049105: Move array component mirror to instance of java/lang/Class (hotspot part 2)

This removes component mirrors from arrayKlass metadata and the C2 intrinsic for them.

Reviewed-by: kvn, twisti, mgerdin
This commit is contained in:
Coleen Phillimore 2014-08-28 11:29:09 -04:00
parent d9da8946df
commit 73d759e533
23 changed files with 26 additions and 112 deletions

View file

@ -39,7 +39,6 @@ class ArrayKlass: public Klass {
Klass* volatile _higher_dimension; // Refers the (n+1)'th-dimensional array (if present).
Klass* volatile _lower_dimension; // Refers the (n-1)'th-dimensional array (if present).
int _vtable_len; // size of vtable for this klass
oop _component_mirror; // component type, as a java/lang/Class
protected:
// Constructors
@ -70,13 +69,6 @@ class ArrayKlass: public Klass {
// type of elements (T_OBJECT for both oop arrays and array-arrays)
BasicType element_type() const { return layout_helper_element_type(layout_helper()); }
oop component_mirror() const { return _component_mirror; }
void set_component_mirror(oop m) { klass_oop_store(&_component_mirror, m); }
oop* adr_component_mirror() { return (oop*)&this->_component_mirror;}
// Compiler/Interpreter offset
static ByteSize component_mirror_offset() { return in_ByteSize(offset_of(ArrayKlass, _component_mirror)); }
virtual Klass* java_super() const;//{ return SystemDictionary::Object_klass(); }
// Allocation
@ -122,9 +114,6 @@ class ArrayKlass: public Klass {
void array_klasses_do(void f(Klass* k));
void array_klasses_do(void f(Klass* k, TRAPS), TRAPS);
// GC support
virtual void oops_do(OopClosure* cl);
// Return a handle.
static void complete_create_array_klass(ArrayKlass* k, KlassHandle super_klass, TRAPS);