equal
deleted
inserted
replaced
239 // No need to zero the offset, allocation zero'ed the entire String object |
239 // No need to zero the offset, allocation zero'ed the entire String object |
240 set_coder(obj, is_latin1 ? CODER_LATIN1 : CODER_UTF16); |
240 set_coder(obj, is_latin1 ? CODER_LATIN1 : CODER_UTF16); |
241 return h_obj; |
241 return h_obj; |
242 } |
242 } |
243 |
243 |
244 Handle java_lang_String::create_from_unicode(jchar* unicode, int length, TRAPS) { |
244 Handle java_lang_String::create_from_unicode(const jchar* unicode, int length, TRAPS) { |
245 bool is_latin1 = CompactStrings && UNICODE::is_latin1(unicode, length); |
245 bool is_latin1 = CompactStrings && UNICODE::is_latin1(unicode, length); |
246 Handle h_obj = basic_create(length, is_latin1, CHECK_NH); |
246 Handle h_obj = basic_create(length, is_latin1, CHECK_NH); |
247 typeArrayOop buffer = value(h_obj()); |
247 typeArrayOop buffer = value(h_obj()); |
248 assert(TypeArrayKlass::cast(buffer->klass())->element_type() == T_BYTE, "only byte[]"); |
248 assert(TypeArrayKlass::cast(buffer->klass())->element_type() == T_BYTE, "only byte[]"); |
249 if (is_latin1) { |
249 if (is_latin1) { |
269 #endif |
269 #endif |
270 |
270 |
271 return h_obj; |
271 return h_obj; |
272 } |
272 } |
273 |
273 |
274 oop java_lang_String::create_oop_from_unicode(jchar* unicode, int length, TRAPS) { |
274 oop java_lang_String::create_oop_from_unicode(const jchar* unicode, int length, TRAPS) { |
275 Handle h_obj = create_from_unicode(unicode, length, CHECK_0); |
275 Handle h_obj = create_from_unicode(unicode, length, CHECK_0); |
276 return h_obj(); |
276 return h_obj(); |
277 } |
277 } |
278 |
278 |
279 Handle java_lang_String::create_from_str(const char* utf8_str, TRAPS) { |
279 Handle java_lang_String::create_from_str(const char* utf8_str, TRAPS) { |
641 jbyte* position = value->byte_at_addr(start); |
641 jbyte* position = value->byte_at_addr(start); |
642 return UNICODE::as_utf8(position, len, buf, buflen); |
642 return UNICODE::as_utf8(position, len, buf, buflen); |
643 } |
643 } |
644 } |
644 } |
645 |
645 |
646 bool java_lang_String::equals(oop java_string, jchar* chars, int len) { |
646 bool java_lang_String::equals(oop java_string, const jchar* chars, int len) { |
647 assert(java_string->klass() == SystemDictionary::String_klass(), |
647 assert(java_string->klass() == SystemDictionary::String_klass(), |
648 "must be java_string"); |
648 "must be java_string"); |
649 typeArrayOop value = java_lang_String::value_no_keepalive(java_string); |
649 typeArrayOop value = java_lang_String::value_no_keepalive(java_string); |
650 int length = java_lang_String::length(java_string); |
650 int length = java_lang_String::length(java_string); |
651 if (length != len) { |
651 if (length != len) { |
2567 assert(element->is_a(SystemDictionary::StackTraceElement_klass()), "sanity check"); |
2567 assert(element->is_a(SystemDictionary::StackTraceElement_klass()), "sanity check"); |
2568 |
2568 |
2569 // Fill in class name |
2569 // Fill in class name |
2570 ResourceMark rm(THREAD); |
2570 ResourceMark rm(THREAD); |
2571 const char* str = holder->external_name(); |
2571 const char* str = holder->external_name(); |
2572 oop classname = StringTable::intern((char*) str, CHECK); |
2572 oop classname = StringTable::intern(str, CHECK); |
2573 java_lang_StackTraceElement::set_declaringClass(element(), classname); |
2573 java_lang_StackTraceElement::set_declaringClass(element(), classname); |
2574 java_lang_StackTraceElement::set_declaringClassObject(element(), holder->java_mirror()); |
2574 java_lang_StackTraceElement::set_declaringClassObject(element(), holder->java_mirror()); |
2575 |
2575 |
2576 oop loader = holder->class_loader(); |
2576 oop loader = holder->class_loader(); |
2577 if (loader != NULL) { |
2577 if (loader != NULL) { |