comparison src/share/vm/graal/graalEnv.hpp @ 3670:f198b24093f3

put back in thread transitions.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 18 Nov 2011 16:23:26 +0100
parents d24f157f2ba8
children d3d3dd0a3421
comparison
equal deleted inserted replaced
3669:53636e2c9d03 3670:f198b24093f3
56 // Return an unloaded klass if !require_local and no class at all is found. 56 // Return an unloaded klass if !require_local and no class at all is found.
57 // 57 //
58 // The CI treats a klass as loaded if it is consistently defined in 58 // The CI treats a klass as loaded if it is consistently defined in
59 // another loader, even if it hasn't yet been loaded in all loaders 59 // another loader, even if it hasn't yet been loaded in all loaders
60 // that could potentially see it via delegation. 60 // that could potentially see it via delegation.
61 static KlassHandle get_klass_by_name(KlassHandle accessing_klass, 61 static KlassHandle get_klass_by_name(KlassHandle& accessing_klass,
62 Symbol* klass_name, 62 Symbol* klass_name,
63 bool require_local); 63 bool require_local);
64 64
65 // Constant pool access. 65 // Constant pool access.
66 static KlassHandle get_klass_by_index(constantPoolHandle cpool, 66 static KlassHandle get_klass_by_index(constantPoolHandle& cpool,
67 int klass_index, 67 int klass_index,
68 bool& is_accessible, 68 bool& is_accessible,
69 KlassHandle loading_klass); 69 KlassHandle& loading_klass);
70 static void get_field_by_index(instanceKlassHandle loading_klass, fieldDescriptor& fd, 70 static void get_field_by_index(instanceKlassHandle& loading_klass, fieldDescriptor& fd,
71 int field_index); 71 int field_index);
72 static methodHandle get_method_by_index(constantPoolHandle cpool, 72 static methodHandle get_method_by_index(constantPoolHandle& cpool,
73 int method_index, Bytecodes::Code bc, 73 int method_index, Bytecodes::Code bc,
74 instanceKlassHandle loading_klass); 74 instanceKlassHandle& loading_klass);
75 75
76 private: 76 private:
77 77
78 // Implementation methods for loading and constant pool access. 78 // Implementation methods for loading and constant pool access.
79 static KlassHandle get_klass_by_name_impl(KlassHandle accessing_klass, 79 static KlassHandle get_klass_by_name_impl(KlassHandle& accessing_klass,
80 constantPoolHandle cpool, 80 constantPoolHandle& cpool,
81 Symbol* klass_name, 81 Symbol* klass_name,
82 bool require_local); 82 bool require_local);
83 static KlassHandle get_klass_by_index_impl(constantPoolHandle cpool, 83 static KlassHandle get_klass_by_index_impl(constantPoolHandle& cpool,
84 int klass_index, 84 int klass_index,
85 bool& is_accessible, 85 bool& is_accessible,
86 KlassHandle loading_klass); 86 KlassHandle& loading_klass);
87 static void get_field_by_index_impl(instanceKlassHandle loading_klass, fieldDescriptor& fd, 87 static void get_field_by_index_impl(instanceKlassHandle& loading_klass, fieldDescriptor& fd,
88 int field_index); 88 int field_index);
89 static methodHandle get_method_by_index_impl(constantPoolHandle cpool, 89 static methodHandle get_method_by_index_impl(constantPoolHandle& cpool,
90 int method_index, Bytecodes::Code bc, 90 int method_index, Bytecodes::Code bc,
91 instanceKlassHandle loading_klass); 91 instanceKlassHandle& loading_klass);
92 92
93 // Helper methods 93 // Helper methods
94 static bool check_klass_accessibility(KlassHandle accessing_klass, KlassHandle resolved_klassOop); 94 static bool check_klass_accessibility(KlassHandle& accessing_klass, KlassHandle& resolved_klassOop);
95 static methodHandle lookup_method(instanceKlassHandle accessor, 95 static methodHandle lookup_method(instanceKlassHandle& accessor,
96 instanceKlassHandle holder, 96 instanceKlassHandle& holder,
97 Symbol* name, 97 Symbol* name,
98 Symbol* sig, 98 Symbol* sig,
99 Bytecodes::Code bc); 99 Bytecodes::Code bc);
100 100
101 private: 101 private:
133 133
134 // converts the ciKlass* representing the holder of a method into a 134 // converts the ciKlass* representing the holder of a method into a
135 // ciInstanceKlass*. This is needed since the holder of a method in 135 // ciInstanceKlass*. This is needed since the holder of a method in
136 // the bytecodes could be an array type. Basically this converts 136 // the bytecodes could be an array type. Basically this converts
137 // array types into java/lang/Object and other types stay as they are. 137 // array types into java/lang/Object and other types stay as they are.
138 static instanceKlassHandle get_instance_klass_for_declared_method_holder(KlassHandle klass); 138 static instanceKlassHandle get_instance_klass_for_declared_method_holder(KlassHandle& klass);
139 }; 139 };
140 140
141 #endif // SHARE_VM_GRAAL_GRAALENV_HPP 141 #endif // SHARE_VM_GRAAL_GRAALENV_HPP