50 inline bool Klass::is_loader_alive() const {
51 return class_loader_data()->is_alive();
52 }
53
54 inline oop Klass::java_mirror() const {
55 return _java_mirror.resolve();
56 }
57
58 inline oop Klass::java_mirror_no_keepalive() const {
59 return _java_mirror.peek();
60 }
61
62 inline klassVtable Klass::vtable() const {
63 return klassVtable(const_cast<Klass*>(this), start_of_vtable(), vtable_length() / vtableEntry::size());
64 }
65
66 inline oop Klass::class_loader() const {
67 return class_loader_data()->class_loader();
68 }
69
70 inline vtableEntry* Klass::start_of_vtable() const {
71 return (vtableEntry*) ((address)this + in_bytes(vtable_start_offset()));
72 }
73
74 inline ByteSize Klass::vtable_start_offset() {
75 return in_ByteSize(InstanceKlass::header_size() * wordSize);
76 }
77
78 #endif // SHARE_OOPS_KLASS_INLINE_HPP
|
50 inline bool Klass::is_loader_alive() const {
51 return class_loader_data()->is_alive();
52 }
53
54 inline oop Klass::java_mirror() const {
55 return _java_mirror.resolve();
56 }
57
58 inline oop Klass::java_mirror_no_keepalive() const {
59 return _java_mirror.peek();
60 }
61
62 inline klassVtable Klass::vtable() const {
63 return klassVtable(const_cast<Klass*>(this), start_of_vtable(), vtable_length() / vtableEntry::size());
64 }
65
66 inline oop Klass::class_loader() const {
67 return class_loader_data()->class_loader();
68 }
69
70 inline Symbol* Klass::class_loader_name_and_id() const {
71 return class_loader_data()->name_and_id();
72 }
73
74 inline vtableEntry* Klass::start_of_vtable() const {
75 return (vtableEntry*) ((address)this + in_bytes(vtable_start_offset()));
76 }
77
78 inline ByteSize Klass::vtable_start_offset() {
79 return in_ByteSize(InstanceKlass::header_size() * wordSize);
80 }
81
82 #endif // SHARE_OOPS_KLASS_INLINE_HPP
|