src/share/vm/runtime/fieldDescriptor.cpp

changeset 3803
71afdabfd05b
parent 3137
e6b1331a51d2
child 3879
634b8615a6ba
equal deleted inserted replaced
3772:03d61caacd1e 3803:71afdabfd05b
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();

mercurial