26 #include "classfile/systemDictionary.hpp" |
26 #include "classfile/systemDictionary.hpp" |
27 #include "classfile/vmSymbols.hpp" |
27 #include "classfile/vmSymbols.hpp" |
28 #include "memory/resourceArea.hpp" |
28 #include "memory/resourceArea.hpp" |
29 #include "memory/universe.inline.hpp" |
29 #include "memory/universe.inline.hpp" |
30 #include "oops/instanceKlass.hpp" |
30 #include "oops/instanceKlass.hpp" |
|
31 #include "oops/fieldStreams.hpp" |
31 #include "runtime/fieldDescriptor.hpp" |
32 #include "runtime/fieldDescriptor.hpp" |
32 #include "runtime/handles.inline.hpp" |
33 #include "runtime/handles.inline.hpp" |
33 #include "runtime/signature.hpp" |
34 #include "runtime/signature.hpp" |
34 |
35 |
35 |
36 |
36 oop fieldDescriptor::loader() const { |
37 oop fieldDescriptor::loader() const { |
37 return instanceKlass::cast(_cp->pool_holder())->class_loader(); |
38 return instanceKlass::cast(_cp->pool_holder())->class_loader(); |
|
39 } |
|
40 |
|
41 Symbol* fieldDescriptor::generic_signature() const { |
|
42 int idx = 0; |
|
43 instanceKlass* ik = instanceKlass::cast(field_holder()); |
|
44 for (AllFieldStream fs(ik); !fs.done(); fs.next()) { |
|
45 if (idx == _index) { |
|
46 return fs.generic_signature(); |
|
47 } else { |
|
48 idx ++; |
|
49 } |
|
50 } |
|
51 assert(false, "should never happen"); |
|
52 return NULL; |
38 } |
53 } |
39 |
54 |
40 typeArrayOop fieldDescriptor::annotations() const { |
55 typeArrayOop fieldDescriptor::annotations() const { |
41 instanceKlass* ik = instanceKlass::cast(field_holder()); |
56 instanceKlass* ik = instanceKlass::cast(field_holder()); |
42 objArrayOop md = ik->fields_annotations(); |
57 objArrayOop md = ik->fields_annotations(); |