< prev index next >
src/hotspot/share/classfile/javaClasses.cpp
Print this page
rev 49674 : 8198285: More consistent Access API for arraycopy
@@ -308,11 +308,11 @@
}
Handle h_obj = basic_create(length, is_latin1, CHECK_NH);
if (length > 0) {
if (!has_multibyte) {
- strncpy((char*)value(h_obj())->byte_at_addr(0), utf8_str, length);
+ HeapAccess<>::arraycopy<jbyte>(NULL, 0, reinterpret_cast<const jbyte*>(utf8_str), value(h_obj()), typeArrayOopDesc::element_offset<jbyte>(0), NULL, length);
} else if (is_latin1) {
UTF8::convert_to_unicode(utf8_str, value(h_obj())->byte_at_addr(0), length);
} else {
UTF8::convert_to_unicode(utf8_str, value(h_obj())->char_at_addr(0), length);
}
@@ -354,11 +354,11 @@
}
Handle h_obj = basic_create(length, is_latin1, CHECK_NH);
if (length > 0) {
if (!has_multibyte) {
- strncpy((char*)value(h_obj())->byte_at_addr(0), utf8_str, length);
+ HeapAccess<>::arraycopy<jbyte>(NULL, 0, reinterpret_cast<const jbyte*>(utf8_str), value(h_obj()), typeArrayOopDesc::element_offset<jbyte>(0), NULL, length);
} else if (is_latin1) {
UTF8::convert_to_unicode(utf8_str, value(h_obj())->byte_at_addr(0), length);
} else {
UTF8::convert_to_unicode(utf8_str, value(h_obj())->char_at_addr(0), length);
}
< prev index next >