@@ -469,70 +469,9 @@ char* java_lang_String::as_platform_dependent_str(Handle java_string, TRAPS) {
469
469
return native_platform_string;
470
470
}
471
471
472
- Handle java_lang_String::char_converter (Handle java_string, jchar from_char, jchar to_char, TRAPS) {
473
- oop obj = java_string ();
474
- // Typical usage is to convert all '/' to '.' in string.
475
- typeArrayOop value = java_lang_String::value (obj);
476
- int length = java_lang_String::length (obj, value);
477
- bool is_latin1 = java_lang_String::is_latin1 (obj);
478
-
479
- // First check if any from_char exist
480
- int index ; // Declared outside, used later
481
- for (index = 0 ; index < length; index ++) {
482
- jchar c = !is_latin1 ? value->char_at (index ) :
483
- ((jchar) value->byte_at (index )) & 0xff ;
484
- if (c == from_char) {
485
- break ;
486
- }
487
- }
488
- if (index == length) {
489
- // No from_char, so do not copy.
490
- return java_string;
491
- }
492
-
493
- // Check if result string will be latin1
494
- bool to_is_latin1 = false ;
495
-
496
- // Replacement char must be latin1
497
- if (CompactStrings && UNICODE::is_latin1 (to_char)) {
498
- if (is_latin1) {
499
- // Source string is latin1 as well
500
- to_is_latin1 = true ;
501
- } else if (!UNICODE::is_latin1 (from_char)) {
502
- // We are replacing an UTF16 char. Scan string to
503
- // check if result can be latin1 encoded.
504
- to_is_latin1 = true ;
505
- for (index = 0 ; index < length; index ++) {
506
- jchar c = value->char_at (index );
507
- if (c != from_char && !UNICODE::is_latin1 (c)) {
508
- to_is_latin1 = false ;
509
- break ;
510
- }
511
- }
512
- }
513
- }
514
-
515
- // Create new UNICODE (or byte) buffer. Must handlize value because GC
516
- // may happen during String and char array creation.
517
- typeArrayHandle h_value (THREAD, value);
518
- Handle string = basic_create (length, to_is_latin1, CHECK_NH);
519
- typeArrayOop from_buffer = h_value ();
520
- typeArrayOop to_buffer = java_lang_String::value (string ());
521
-
522
- // Copy contents
523
- for (index = 0 ; index < length; index ++) {
524
- jchar c = (!is_latin1) ? from_buffer->char_at (index ) :
525
- ((jchar) from_buffer->byte_at (index )) & 0xff ;
526
- if (c == from_char) {
527
- c = to_char;
528
- }
529
- if (!to_is_latin1) {
530
- to_buffer->char_at_put (index , c);
531
- } else {
532
- to_buffer->byte_at_put (index , (jbyte) c);
533
- }
534
- }
535
- return string;
472
+ Handle java_lang_String::externalize_classname (Symbol* java_name, TRAPS) {
473
+ ResourceMark rm (THREAD);
474
+ return create_from_str (java_name->as_klass_external_name (), THREAD);
536
475
}
537
476
538
477
jchar* java_lang_String::as_unicode_string (oop java_string, int & length, TRAPS) {
1 commit comments
openjdk-notifier[bot] commentedon Jun 16, 2021
Review
Issues