< prev index next >

src/share/vm/classfile/javaClasses.cpp

Print this page

        

*** 210,220 **** return Handle(); } int length = UTF8::unicode_length(utf8_str); Handle h_obj = basic_create(length, CHECK_NH); if (length > 0) { ! UTF8::convert_to_unicode(utf8_str, value(h_obj())->char_at_addr(0), length); } return h_obj; } oop java_lang_String::create_oop_from_str(const char* utf8_str, TRAPS) { --- 210,222 ---- return Handle(); } int length = UTF8::unicode_length(utf8_str); Handle h_obj = basic_create(length, CHECK_NH); if (length > 0) { ! typeArrayOop buffer = value(h_obj()); ! buffer = typeArrayOop(oopDesc::bs()->write_barrier(buffer)); ! UTF8::convert_to_unicode(utf8_str, buffer->char_at_addr(0), length); } return h_obj; } oop java_lang_String::create_oop_from_str(const char* utf8_str, TRAPS) {
*** 224,234 **** Handle java_lang_String::create_from_symbol(Symbol* symbol, TRAPS) { int length = UTF8::unicode_length((char*)symbol->bytes(), symbol->utf8_length()); Handle h_obj = basic_create(length, CHECK_NH); if (length > 0) { ! UTF8::convert_to_unicode((char*)symbol->bytes(), value(h_obj())->char_at_addr(0), length); } return h_obj; } // Converts a C string to a Java String based on current encoding --- 226,238 ---- Handle java_lang_String::create_from_symbol(Symbol* symbol, TRAPS) { int length = UTF8::unicode_length((char*)symbol->bytes(), symbol->utf8_length()); Handle h_obj = basic_create(length, CHECK_NH); if (length > 0) { ! typeArrayOop buffer = value(h_obj()); ! buffer = typeArrayOop(oopDesc::bs()->write_barrier(buffer)); ! UTF8::convert_to_unicode((char*)symbol->bytes(), buffer->char_at_addr(0), length); } return h_obj; } // Converts a C string to a Java String based on current encoding
*** 441,450 **** --- 445,457 ---- bool java_lang_String::equals(oop java_string, jchar* chars, int len) { assert(java_string->klass() == SystemDictionary::String_klass(), "must be java_string"); typeArrayOop value = java_lang_String::value(java_string); + if (ShenandoahVerifyReadsToFromSpace) { + value = (typeArrayOop) oopDesc::bs()->read_barrier(value); + } int offset = java_lang_String::offset(java_string); int length = java_lang_String::length(java_string); if (length != len) { return false; }
*** 861,873 **** BasicType type = T_VOID; if (ak != NULL) { // Note: create_basic_type_mirror above initializes ak to a non-null value. type = ArrayKlass::cast(ak)->element_type(); } else { ! assert(java_class == Universe::void_mirror(), "only valid non-array primitive"); } ! assert(Universe::java_mirror(type) == java_class, "must be consistent"); return type; } BasicType java_lang_Class::as_BasicType(oop java_class, Klass** reference_klass) { assert(java_lang_Class::is_instance(java_class), "must be a Class object"); --- 868,880 ---- BasicType type = T_VOID; if (ak != NULL) { // Note: create_basic_type_mirror above initializes ak to a non-null value. type = ArrayKlass::cast(ak)->element_type(); } else { ! assert(oopDesc::bs()->write_barrier(java_class) == oopDesc::bs()->write_barrier(Universe::void_mirror()), "only valid non-array primitive"); } ! assert(oopDesc::bs()->write_barrier(Universe::java_mirror(type)) == oopDesc::bs()->write_barrier(java_class), "must be consistent"); return type; } BasicType java_lang_Class::as_BasicType(oop java_class, Klass** reference_klass) { assert(java_lang_Class::is_instance(java_class), "must be a Class object");
*** 3089,3098 **** --- 3096,3106 ---- assert(loader != NULL && loader->is_oop(), "loader must be oop"); return (ClassLoaderData**) loader->address_field_addr(_loader_data_offset); } ClassLoaderData* java_lang_ClassLoader::loader_data(oop loader) { + loader = oopDesc::bs()->read_barrier(loader); return *java_lang_ClassLoader::loader_data_addr(loader); } void java_lang_ClassLoader::compute_offsets() { assert(!offsets_computed, "offsets should be initialized only once");
*** 3105,3114 **** --- 3113,3125 ---- CLASSLOADER_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); } oop java_lang_ClassLoader::parent(oop loader) { + if (ShenandoahVerifyReadsToFromSpace) { + loader = oopDesc::bs()->read_barrier(loader); + } assert(is_instance(loader), "loader must be oop"); return loader->obj_field(parent_offset); } bool java_lang_ClassLoader::isAncestor(oop loader, oop cl) {
< prev index next >