< prev index next > src/hotspot/share/oops/fieldStreams.hpp
Print this page
// iterates over fields that have been injected by the JVM.
// AllFieldStream exposes all fields and should only be used in rare
// cases.
// HierarchicalFieldStream allows to also iterate over fields of supertypes.
class FieldStreamBase : public StackObj {
+
protected:
const Array<u1>* _fieldinfo_stream;
FieldInfoReader _reader;
constantPoolHandle _constants;
int _index;
int offset() const {
return field()->offset();
}
+ bool is_null_free_inline_type() {
+ return field()->field_flags().is_null_free_inline_type();
+ }
+
+ bool is_flat() const {
+ return field()->field_flags().is_flat();
+ }
+
bool is_contended() const {
return field()->is_contended();
}
int contended_group() const {
return field()->contended_group();
}
+ int null_marker_offset() const {
+ return field()->null_marker_offset();
+ }
+
// Convenient methods
FieldInfo to_FieldInfo() {
return _fi_buf;
}
}
bool done() const { return _next_klass == nullptr && _current_stream.done(); }
// bridge functions from FieldStreamBase
+ int index() const {
+ return _current_stream.index();
+ }
AccessFlags access_flags() const {
return _current_stream.access_flags();
}
fieldDescriptor& field_descriptor() const {
return _current_stream.field_descriptor();
}
+ bool is_flat() const {
+ return _current_stream.is_flat();
+ }
};
#endif // SHARE_OOPS_FIELDSTREAMS_HPP
< prev index next >