// This class represents the field information contained in the fields // array of an InstanceKlass. Currently it's laid on top an array of // Java shorts but in the future it could simply be used as a real // array type. FieldInfo generally shouldn't be used directly. // Fields should be queried either through InstanceKlass or through // the various FieldStreams. class FieldInfo {
friend class fieldDescriptor;
friend class JavaFieldStream;
friend class ClassFileParser;
public: // fields // Field info extracted from the class file and stored // as an array of 6 shorts.
// Packed field has the tag, and can be either of: // hi bits <--------------------------- lo bits // |---------high---------|---------low---------| // ..........................................CO // ..........................................00 - non-contended field // [--contention_group--]....................10 - contended field with contention group // [------------------offset----------------]01 - real field offset
// Bit O indicates if the packed field contains an offset (O=1) or not (O=0) // Bit C indicates if the field is contended (C=1) or not (C=0) // (if it is contended, the high packed field contains the contention group)
u2 contended_group() const {
assert((_shorts[low_packed_offset] & FIELDINFO_TAG_OFFSET) == 0, "Offset must not have been set");
assert((_shorts[low_packed_offset] & FIELDINFO_TAG_CONTENDED) != 0, "Field must be contended"); return _shorts[high_packed_offset];
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.