199 // If it is an unloaded instance or array klass, return an unloaded
200 // mirror object of type Class.
201 ciInstance* ciKlass::java_mirror() {
202 GUARDED_VM_ENTRY(
203 if (!is_loaded())
204 return ciEnv::current()->get_unloaded_klass_mirror(this);
205 oop java_mirror = get_Klass()->java_mirror();
206 return CURRENT_ENV->get_instance(java_mirror);
207 )
208 }
209
210 // ------------------------------------------------------------------
211 // ciKlass::modifier_flags
212 jint ciKlass::modifier_flags() {
213 assert(is_loaded(), "not loaded");
214 GUARDED_VM_ENTRY(
215 return get_Klass()->modifier_flags();
216 )
217 }
218
219 // ------------------------------------------------------------------
220 // ciKlass::misc_flags
221 klass_flags_t ciKlass::misc_flags() {
222 assert(is_loaded(), "not loaded");
223 GUARDED_VM_ENTRY(
224 return get_Klass()->misc_flags();
225 )
226 }
227
228 // ------------------------------------------------------------------
229 // ciKlass::print_impl
230 //
231 // Implementation of the print method
232 void ciKlass::print_impl(outputStream* st) {
233 st->print(" name=");
234 print_name_on(st);
235 st->print(" loaded=%s", (is_loaded() ? "true" : "false"));
236 }
237
238 // ------------------------------------------------------------------
239 // ciKlass::print_name
240 //
241 // Print the name of this klass
242 void ciKlass::print_name_on(outputStream* st) {
243 name()->print_symbol_on(st);
244 }
245
246 const char* ciKlass::external_name() const {
247 GUARDED_VM_ENTRY(
248 return get_Klass()->external_name();
249 )
250 }
251
252 // ------------------------------------------------------------------
253 // ciKlass::prototype_header_offset
254 juint ciKlass::prototype_header_offset() {
255 assert(is_loaded(), "must be loaded");
|
199 // If it is an unloaded instance or array klass, return an unloaded
200 // mirror object of type Class.
201 ciInstance* ciKlass::java_mirror() {
202 GUARDED_VM_ENTRY(
203 if (!is_loaded())
204 return ciEnv::current()->get_unloaded_klass_mirror(this);
205 oop java_mirror = get_Klass()->java_mirror();
206 return CURRENT_ENV->get_instance(java_mirror);
207 )
208 }
209
210 // ------------------------------------------------------------------
211 // ciKlass::modifier_flags
212 jint ciKlass::modifier_flags() {
213 assert(is_loaded(), "not loaded");
214 GUARDED_VM_ENTRY(
215 return get_Klass()->modifier_flags();
216 )
217 }
218
219 // ------------------------------------------------------------------
220 // ciKlass::prototype_header
221 markWord ciKlass::prototype_header() const {
222 assert(is_loaded(), "not loaded");
223 GUARDED_VM_ENTRY(
224 return get_Klass()->prototype_header();
225 )
226 }
227
228 // ------------------------------------------------------------------
229 // ciKlass::misc_flags
230 klass_flags_t ciKlass::misc_flags() {
231 assert(is_loaded(), "not loaded");
232 GUARDED_VM_ENTRY(
233 return get_Klass()->misc_flags();
234 )
235 }
236
237 // ------------------------------------------------------------------
238 // ciKlass::print_impl
239 //
240 // Implementation of the print method
241 void ciKlass::print_impl(outputStream* st) {
242 st->print(" name=");
243 print_name_on(st);
244 st->print(" loaded=%s", (is_loaded() ? "true" : "false"));
245 GUARDED_VM_ENTRY(
246 if (is_flat_array_klass()) {
247 st->print(" layout_kind=%d", (int)((FlatArrayKlass*)get_Klass())->layout_kind());
248 }
249 )
250 }
251
252 // ------------------------------------------------------------------
253 // ciKlass::print_name
254 //
255 // Print the name of this klass
256 void ciKlass::print_name_on(outputStream* st) {
257 name()->print_symbol_on(st);
258 }
259
260 const char* ciKlass::external_name() const {
261 GUARDED_VM_ENTRY(
262 return get_Klass()->external_name();
263 )
264 }
265
266 // ------------------------------------------------------------------
267 // ciKlass::prototype_header_offset
268 juint ciKlass::prototype_header_offset() {
269 assert(is_loaded(), "must be loaded");
|