49 class InstanceRefKlass: public InstanceKlass { |
49 class InstanceRefKlass: public InstanceKlass { |
50 friend class InstanceKlass; |
50 friend class InstanceKlass; |
51 |
51 |
52 // Constructor |
52 // Constructor |
53 InstanceRefKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous) |
53 InstanceRefKlass(int vtable_len, int itable_len, int static_field_size, int nonstatic_oop_map_size, ReferenceType rt, AccessFlags access_flags, bool is_anonymous) |
54 : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, rt, access_flags, is_anonymous) {} |
54 : InstanceKlass(vtable_len, itable_len, static_field_size, nonstatic_oop_map_size, |
|
55 InstanceKlass::_misc_kind_reference, rt, access_flags, is_anonymous) {} |
55 |
56 |
56 public: |
57 public: |
57 InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } |
58 InstanceRefKlass() { assert(DumpSharedSpaces || UseSharedSpaces, "only for CDS"); } |
58 // Type testing |
|
59 bool oop_is_instanceRef() const { return true; } |
|
60 |
|
61 // Casting from Klass* |
|
62 static InstanceRefKlass* cast(Klass* k) { |
|
63 assert(k->oop_is_instanceRef(), "cast to InstanceRefKlass"); |
|
64 return (InstanceRefKlass*) k; |
|
65 } |
|
66 |
59 |
67 // GC specific object visitors |
60 // GC specific object visitors |
68 // |
61 // |
69 // Mark Sweep |
62 // Mark Sweep |
70 int oop_ms_adjust_pointers(oop obj); |
63 int oop_ms_adjust_pointers(oop obj); |