< prev index next >
src/hotspot/share/runtime/fieldDescriptor.hpp
Print this page
@@ -42,57 +42,48 @@
AccessFlags _access_flags;
int _index; // the field index
constantPoolHandle _cp;
// update the access_flags for the field in the klass
- void update_klass_field_access_flag() {
- InstanceKlass* ik = field_holder();
- ik->field(index())->set_access_flags(_access_flags.as_short());
- }
+ inline void update_klass_field_access_flag();
- FieldInfo* field() const {
- InstanceKlass* ik = field_holder();
- return ik->field(_index);
- }
+ FieldInfo* field() const;
public:
fieldDescriptor() {
DEBUG_ONLY(_index = badInt);
}
fieldDescriptor(InstanceKlass* ik, int index) {
DEBUG_ONLY(_index = badInt);
reinitialize(ik, index);
}
- Symbol* name() const {
- return field()->name(_cp());
- }
- Symbol* signature() const {
- return field()->signature(_cp());
- }
- InstanceKlass* field_holder() const { return _cp->pool_holder(); }
- ConstantPool* constants() const { return _cp(); }
+ inline Symbol* name() const;
+ inline Symbol* signature() const;
+ inline InstanceKlass* field_holder() const;
+ inline ConstantPool* constants() const;
+
AccessFlags access_flags() const { return _access_flags; }
oop loader() const;
// Offset (in words) of field from start of instanceOop / Klass*
- int offset() const { return field()->offset(); }
+ inline int offset() const;
Symbol* generic_signature() const;
int index() const { return _index; }
AnnotationArray* annotations() const;
AnnotationArray* type_annotations() const;
// Initial field value
- bool has_initial_value() const { return field()->initval_index() != 0; }
- int initial_value_index() const { return field()->initval_index(); }
+ inline bool has_initial_value() const;
+ inline int initial_value_index() const;
constantTag initial_value_tag() const; // The tag will return true on one of is_int(), is_long(), is_single(), is_double()
jint int_initial_value() const;
jlong long_initial_value() const;
jfloat float_initial_value() const;
jdouble double_initial_value() const;
oop string_initial_value(TRAPS) const;
// Field signature type
- BasicType field_type() const { return FieldType::basic_type(signature()); }
+ inline BasicType field_type() const;
// Access flags
bool is_public() const { return access_flags().is_public(); }
bool is_private() const { return access_flags().is_private(); }
bool is_protected() const { return access_flags().is_protected(); }
@@ -109,24 +100,13 @@
bool is_field_modification_watched() const
{ return access_flags().is_field_modification_watched(); }
bool has_initialized_final_update() const { return access_flags().has_field_initialized_final_update(); }
bool has_generic_signature() const { return access_flags().field_has_generic_signature(); }
- void set_is_field_access_watched(const bool value) {
- _access_flags.set_is_field_access_watched(value);
- update_klass_field_access_flag();
- }
-
- void set_is_field_modification_watched(const bool value) {
- _access_flags.set_is_field_modification_watched(value);
- update_klass_field_access_flag();
- }
-
- void set_has_initialized_final_update(const bool value) {
- _access_flags.set_has_field_initialized_final_update(value);
- update_klass_field_access_flag();
- }
+ inline void set_is_field_access_watched(const bool value);
+ inline void set_is_field_modification_watched(const bool value);
+ inline void set_has_initialized_final_update(const bool value);
// Initialization
void reinitialize(InstanceKlass* ik, int index);
// Print
< prev index next >