src/hotspot/share/classfile/javaClasses.cpp
changeset 51823 2a51125b2794
parent 51807 3221f5e14866
child 52062 8dbf1a13af49
equal deleted inserted replaced
51822:f3c1945fa8aa 51823:2a51125b2794
   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) {