462 } |
462 } |
463 |
463 |
464 void java_lang_String::print(oop java_string, outputStream* st) { |
464 void java_lang_String::print(oop java_string, outputStream* st) { |
465 assert(java_string->klass() == SystemDictionary::String_klass(), "must be java_string"); |
465 assert(java_string->klass() == SystemDictionary::String_klass(), "must be java_string"); |
466 typeArrayOop value = java_lang_String::value(java_string); |
466 typeArrayOop value = java_lang_String::value(java_string); |
467 int offset = java_lang_String::offset(java_string); |
467 |
468 int length = java_lang_String::length(java_string); |
|
469 |
|
470 int end = MIN2(length, 100); |
|
471 if (value == NULL) { |
468 if (value == NULL) { |
472 // This can happen if, e.g., printing a String |
469 // This can happen if, e.g., printing a String |
473 // object before its initializer has been called |
470 // object before its initializer has been called |
474 st->print_cr("NULL"); |
471 st->print("NULL"); |
475 } else { |
472 return; |
476 st->print("\""); |
473 } |
477 for (int index = 0; index < length; index++) { |
474 |
478 st->print("%c", value->char_at(index + offset)); |
475 int offset = java_lang_String::offset(java_string); |
479 } |
476 int length = java_lang_String::length(java_string); |
480 st->print("\""); |
477 |
481 } |
478 st->print("\""); |
|
479 for (int index = 0; index < length; index++) { |
|
480 st->print("%c", value->char_at(index + offset)); |
|
481 } |
|
482 st->print("\""); |
482 } |
483 } |
483 |
484 |
484 static void initialize_static_field(fieldDescriptor* fd, TRAPS) { |
485 static void initialize_static_field(fieldDescriptor* fd, TRAPS) { |
485 Handle mirror (THREAD, fd->field_holder()->java_mirror()); |
486 Handle mirror (THREAD, fd->field_holder()->java_mirror()); |
486 assert(mirror.not_null() && fd->is_static(), "just checking"); |
487 assert(mirror.not_null() && fd->is_static(), "just checking"); |