40 friend class ciEnv;
41 friend class ciInstanceKlass;
42
43 private:
44 ciFlags _flags;
45 ciInstanceKlass* _holder;
46 ciSymbol* _name;
47 ciSymbol* _signature;
48 ciType* _type;
49 int _offset;
50 bool _is_constant;
51 ciInstanceKlass* _known_to_link_with_put;
52 ciInstanceKlass* _known_to_link_with_get;
53 ciConstant _constant_value;
54
55 ciType* compute_type();
56 ciType* compute_type_impl();
57
58 ciField(ciInstanceKlass* klass, int index);
59 ciField(fieldDescriptor* fd);
60
61 // shared constructor code
62 void initialize_from(fieldDescriptor* fd);
63
64 public:
65 ciFlags flags() { return _flags; }
66
67 // Of which klass is this field a member?
68 //
69 // Usage note: the declared holder of a field is the class
70 // referenced by name in the bytecodes. The canonical holder
71 // is the most general class which holds the field. This
72 // method returns the canonical holder. The declared holder
73 // can be accessed via a method in ciBytecodeStream.
74 //
75 // Ex.
76 // class A {
77 // public int f = 7;
78 // }
79 // class B extends A {
|
40 friend class ciEnv;
41 friend class ciInstanceKlass;
42
43 private:
44 ciFlags _flags;
45 ciInstanceKlass* _holder;
46 ciSymbol* _name;
47 ciSymbol* _signature;
48 ciType* _type;
49 int _offset;
50 bool _is_constant;
51 ciInstanceKlass* _known_to_link_with_put;
52 ciInstanceKlass* _known_to_link_with_get;
53 ciConstant _constant_value;
54
55 ciType* compute_type();
56 ciType* compute_type_impl();
57
58 ciField(ciInstanceKlass* klass, int index);
59 ciField(fieldDescriptor* fd);
60 ciField(ciField* field, ciInstanceKlass* holder, int offset, bool is_final);
61
62 // shared constructor code
63 void initialize_from(fieldDescriptor* fd);
64
65 public:
66 ciFlags flags() { return _flags; }
67
68 // Of which klass is this field a member?
69 //
70 // Usage note: the declared holder of a field is the class
71 // referenced by name in the bytecodes. The canonical holder
72 // is the most general class which holds the field. This
73 // method returns the canonical holder. The declared holder
74 // can be accessed via a method in ciBytecodeStream.
75 //
76 // Ex.
77 // class A {
78 // public int f = 7;
79 // }
80 // class B extends A {
|