Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/instanceKlass.cpp @ 1142:4ce7240d622c
6914300: ciEnv should export all well known classes
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Wed, 06 Jan 2010 14:22:39 -0800 |
parents | 987e948ebbc8 |
children | 9b9c1ee9b3f6 |
comparison
equal
deleted
inserted
replaced
1140:1f6d42899c3a | 1142:4ce7240d622c |
---|---|
381 { | 381 { |
382 EXCEPTION_MARK; | 382 EXCEPTION_MARK; |
383 this_oop->set_initialization_state_and_notify(initialization_error, THREAD); | 383 this_oop->set_initialization_state_and_notify(initialization_error, THREAD); |
384 CLEAR_PENDING_EXCEPTION; // ignore any exception thrown, class initialization error is thrown below | 384 CLEAR_PENDING_EXCEPTION; // ignore any exception thrown, class initialization error is thrown below |
385 } | 385 } |
386 if (e->is_a(SystemDictionary::error_klass())) { | 386 if (e->is_a(SystemDictionary::Error_klass())) { |
387 THROW_OOP(e()); | 387 THROW_OOP(e()); |
388 } else { | 388 } else { |
389 JavaCallArguments args(e); | 389 JavaCallArguments args(e); |
390 THROW_ARG(vmSymbolHandles::java_lang_ExceptionInInitializerError(), | 390 THROW_ARG(vmSymbolHandles::java_lang_ExceptionInInitializerError(), |
391 vmSymbolHandles::throwable_void_signature(), | 391 vmSymbolHandles::throwable_void_signature(), |
566 if (is_interface() || is_abstract()) { | 566 if (is_interface() || is_abstract()) { |
567 ResourceMark rm(THREAD); | 567 ResourceMark rm(THREAD); |
568 THROW_MSG(throwError ? vmSymbols::java_lang_InstantiationError() | 568 THROW_MSG(throwError ? vmSymbols::java_lang_InstantiationError() |
569 : vmSymbols::java_lang_InstantiationException(), external_name()); | 569 : vmSymbols::java_lang_InstantiationException(), external_name()); |
570 } | 570 } |
571 if (as_klassOop() == SystemDictionary::class_klass()) { | 571 if (as_klassOop() == SystemDictionary::Class_klass()) { |
572 ResourceMark rm(THREAD); | 572 ResourceMark rm(THREAD); |
573 THROW_MSG(throwError ? vmSymbols::java_lang_IllegalAccessError() | 573 THROW_MSG(throwError ? vmSymbols::java_lang_IllegalAccessError() |
574 : vmSymbols::java_lang_IllegalAccessException(), external_name()); | 574 : vmSymbols::java_lang_IllegalAccessException(), external_name()); |
575 } | 575 } |
576 } | 576 } |
2221 | 2221 |
2222 | 2222 |
2223 void instanceKlass::oop_print_on(oop obj, outputStream* st) { | 2223 void instanceKlass::oop_print_on(oop obj, outputStream* st) { |
2224 Klass::oop_print_on(obj, st); | 2224 Klass::oop_print_on(obj, st); |
2225 | 2225 |
2226 if (as_klassOop() == SystemDictionary::string_klass()) { | 2226 if (as_klassOop() == SystemDictionary::String_klass()) { |
2227 typeArrayOop value = java_lang_String::value(obj); | 2227 typeArrayOop value = java_lang_String::value(obj); |
2228 juint offset = java_lang_String::offset(obj); | 2228 juint offset = java_lang_String::offset(obj); |
2229 juint length = java_lang_String::length(obj); | 2229 juint length = java_lang_String::length(obj); |
2230 if (value != NULL && | 2230 if (value != NULL && |
2231 value->is_typeArray() && | 2231 value->is_typeArray() && |
2241 | 2241 |
2242 st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj)); | 2242 st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj)); |
2243 FieldPrinter print_nonstatic_field(st, obj); | 2243 FieldPrinter print_nonstatic_field(st, obj); |
2244 do_nonstatic_fields(&print_nonstatic_field); | 2244 do_nonstatic_fields(&print_nonstatic_field); |
2245 | 2245 |
2246 if (as_klassOop() == SystemDictionary::class_klass()) { | 2246 if (as_klassOop() == SystemDictionary::Class_klass()) { |
2247 st->print(BULLET"signature: "); | 2247 st->print(BULLET"signature: "); |
2248 java_lang_Class::print_signature(obj, st); | 2248 java_lang_Class::print_signature(obj, st); |
2249 st->cr(); | 2249 st->cr(); |
2250 klassOop mirrored_klass = java_lang_Class::as_klassOop(obj); | 2250 klassOop mirrored_klass = java_lang_Class::as_klassOop(obj); |
2251 st->print(BULLET"fake entry for mirror: "); | 2251 st->print(BULLET"fake entry for mirror: "); |
2268 | 2268 |
2269 void instanceKlass::oop_print_value_on(oop obj, outputStream* st) { | 2269 void instanceKlass::oop_print_value_on(oop obj, outputStream* st) { |
2270 st->print("a "); | 2270 st->print("a "); |
2271 name()->print_value_on(st); | 2271 name()->print_value_on(st); |
2272 obj->print_address_on(st); | 2272 obj->print_address_on(st); |
2273 if (as_klassOop() == SystemDictionary::string_klass() | 2273 if (as_klassOop() == SystemDictionary::String_klass() |
2274 && java_lang_String::value(obj) != NULL) { | 2274 && java_lang_String::value(obj) != NULL) { |
2275 ResourceMark rm; | 2275 ResourceMark rm; |
2276 int len = java_lang_String::length(obj); | 2276 int len = java_lang_String::length(obj); |
2277 int plen = (len < 24 ? len : 12); | 2277 int plen = (len < 24 ? len : 12); |
2278 char* str = java_lang_String::as_utf8_string(obj, 0, plen); | 2278 char* str = java_lang_String::as_utf8_string(obj, 0, plen); |
2279 st->print(" = \"%s\"", str); | 2279 st->print(" = \"%s\"", str); |
2280 if (len > plen) | 2280 if (len > plen) |
2281 st->print("...[%d]", len); | 2281 st->print("...[%d]", len); |
2282 } else if (as_klassOop() == SystemDictionary::class_klass()) { | 2282 } else if (as_klassOop() == SystemDictionary::Class_klass()) { |
2283 klassOop k = java_lang_Class::as_klassOop(obj); | 2283 klassOop k = java_lang_Class::as_klassOop(obj); |
2284 st->print(" = "); | 2284 st->print(" = "); |
2285 if (k != NULL) { | 2285 if (k != NULL) { |
2286 k->print_value_on(st); | 2286 k->print_value_on(st); |
2287 } else { | 2287 } else { |
2344 // Verify that java.lang.Class instances have a fake oop field added. | 2344 // Verify that java.lang.Class instances have a fake oop field added. |
2345 instanceKlass* ik = instanceKlass::cast(k); | 2345 instanceKlass* ik = instanceKlass::cast(k); |
2346 | 2346 |
2347 // Check that we have the right class | 2347 // Check that we have the right class |
2348 static bool first_time = true; | 2348 static bool first_time = true; |
2349 guarantee(k == SystemDictionary::class_klass() && first_time, "Invalid verify of maps"); | 2349 guarantee(k == SystemDictionary::Class_klass() && first_time, "Invalid verify of maps"); |
2350 first_time = false; | 2350 first_time = false; |
2351 const int extra = java_lang_Class::number_of_fake_oop_fields; | 2351 const int extra = java_lang_Class::number_of_fake_oop_fields; |
2352 guarantee(ik->nonstatic_field_size() == extra, "just checking"); | 2352 guarantee(ik->nonstatic_field_size() == extra, "just checking"); |
2353 guarantee(ik->nonstatic_oop_map_count() == 1, "just checking"); | 2353 guarantee(ik->nonstatic_oop_map_count() == 1, "just checking"); |
2354 guarantee(ik->size_helper() == align_object_size(instanceOopDesc::header_size() + extra), "just checking"); | 2354 guarantee(ik->size_helper() == align_object_size(instanceOopDesc::header_size() + extra), "just checking"); |