28 #include "classfile/javaClasses.hpp" |
28 #include "classfile/javaClasses.hpp" |
29 #include "oops/oop.inline.hpp" |
29 #include "oops/oop.inline.hpp" |
30 #include "oops/oopsHierarchy.hpp" |
30 #include "oops/oopsHierarchy.hpp" |
31 |
31 |
32 void java_lang_String::set_coder(oop string, jbyte coder) { |
32 void java_lang_String::set_coder(oop string, jbyte coder) { |
33 assert(initialized, "Must be initialized"); |
33 assert(initialized && (coder_offset > 0), "Must be initialized"); |
34 if (coder_offset > 0) { |
34 string->byte_field_put(coder_offset, coder); |
35 string->byte_field_put(coder_offset, coder); |
|
36 } |
|
37 } |
35 } |
38 |
36 |
39 void java_lang_String::set_value_raw(oop string, typeArrayOop buffer) { |
37 void java_lang_String::set_value_raw(oop string, typeArrayOop buffer) { |
40 assert(initialized, "Must be initialized"); |
38 assert(initialized, "Must be initialized"); |
41 string->obj_field_put_raw(value_offset, buffer); |
39 string->obj_field_put_raw(value_offset, buffer); |
59 assert(initialized && (hash_offset > 0), "Must be initialized"); |
57 assert(initialized && (hash_offset > 0), "Must be initialized"); |
60 assert(is_instance(java_string), "must be java_string"); |
58 assert(is_instance(java_string), "must be java_string"); |
61 return java_string->int_field(hash_offset); |
59 return java_string->int_field(hash_offset); |
62 } |
60 } |
63 bool java_lang_String::is_latin1(oop java_string) { |
61 bool java_lang_String::is_latin1(oop java_string) { |
64 assert(initialized, "Must be initialized"); |
62 assert(initialized && (coder_offset > 0), "Must be initialized"); |
65 assert(is_instance(java_string), "must be java_string"); |
63 assert(is_instance(java_string), "must be java_string"); |
66 if (coder_offset > 0) { |
64 jbyte coder = java_string->byte_field(coder_offset); |
67 jbyte coder = java_string->byte_field(coder_offset); |
65 assert(CompactStrings || coder == CODER_UTF16, "Must be UTF16 without CompactStrings"); |
68 assert(CompactStrings || coder == CODER_UTF16, "Must be UTF16 without CompactStrings"); |
66 return coder == CODER_LATIN1; |
69 return coder == CODER_LATIN1; |
|
70 } else { |
|
71 return false; |
|
72 } |
|
73 } |
67 } |
74 int java_lang_String::length(oop java_string) { |
68 int java_lang_String::length(oop java_string) { |
75 assert(initialized, "Must be initialized"); |
69 assert(initialized, "Must be initialized"); |
76 assert(is_instance(java_string), "must be java_string"); |
70 assert(is_instance(java_string), "must be java_string"); |
77 typeArrayOop value_array = ((typeArrayOop)java_string->obj_field(value_offset)); |
71 typeArrayOop value_array = ((typeArrayOop)java_string->obj_field(value_offset)); |