< prev index next > src/hotspot/share/ci/ciField.hpp
Print this page
friend class ciInstanceKlass;
private:
ciFlags _flags;
ciInstanceKlass* _holder;
+ ciInstanceKlass* _original_holder; // For fields nested in flat fields
ciSymbol* _name;
ciSymbol* _signature;
ciType* _type;
int _offset;
bool _is_constant;
+ bool _is_flat;
+ bool _is_null_free;
ciMethod* _known_to_link_with_put;
ciInstanceKlass* _known_to_link_with_get;
ciConstant _constant_value;
ciType* compute_type();
ciType* compute_type_impl();
ciField(ciInstanceKlass* klass, int index, Bytecodes::Code bc);
ciField(fieldDescriptor* fd);
+ ciField(ciField* field, ciInstanceKlass* holder, int offset, bool is_final);
// shared constructor code
void initialize_from(fieldDescriptor* fd);
public:
bool is_static () const { return flags().is_static(); }
bool is_final () const { return flags().is_final(); }
bool is_stable () const { return flags().is_stable(); }
bool is_volatile () const { return flags().is_volatile(); }
bool is_transient () const { return flags().is_transient(); }
+ bool is_flat () const { return _is_flat; }
+ bool is_null_free () const { return _is_null_free; }
+
// The field is modified outside of instance initializer methods
// (or class/initializer methods if the field is static).
bool has_initialized_final_update() const { return flags().has_initialized_final_update(); }
bool is_call_site_target();
< prev index next >