comparison src/share/vm/runtime/reflectionUtils.hpp @ 12264:b2e698d2276c

8014013: CallInfo structure no longer accurately reports the result of a LinkResolver operation Summary: Enhance method resolution and resulting data structures, plus some refactoring. Reviewed-by: twisti, acorn, jrose
author drchase
date Fri, 13 Sep 2013 22:38:02 -0400
parents f9be75d21404
children ac9cb1d5a202
comparison
equal deleted inserted replaced
12261:2c98370f2611 12264:b2e698d2276c
107 107
108 class FieldStream : public KlassStream { 108 class FieldStream : public KlassStream {
109 private: 109 private:
110 int length() const { return _klass->java_fields_count(); } 110 int length() const { return _klass->java_fields_count(); }
111 111
112 fieldDescriptor _fd_buf;
113
112 public: 114 public:
113 FieldStream(instanceKlassHandle klass, bool local_only, bool classes_only) 115 FieldStream(instanceKlassHandle klass, bool local_only, bool classes_only)
114 : KlassStream(klass, local_only, classes_only) { 116 : KlassStream(klass, local_only, classes_only) {
115 _index = length(); 117 _index = length();
116 next(); 118 next();
131 return _klass->field_signature(_index); 133 return _klass->field_signature(_index);
132 } 134 }
133 // missing: initval() 135 // missing: initval()
134 int offset() const { 136 int offset() const {
135 return _klass->field_offset( index() ); 137 return _klass->field_offset( index() );
138 }
139 // bridge to a heavier API:
140 fieldDescriptor& field_descriptor() const {
141 fieldDescriptor& field = const_cast<fieldDescriptor&>(_fd_buf);
142 field.reinitialize(_klass(), _index);
143 return field;
136 } 144 }
137 }; 145 };
138 146
139 class FilteredField : public CHeapObj<mtInternal> { 147 class FilteredField : public CHeapObj<mtInternal> {
140 private: 148 private: