--- a/hotspot/src/share/vm/opto/library_call.cpp Mon Jan 18 08:25:26 2016 +0100
+++ b/hotspot/src/share/vm/opto/library_call.cpp Mon Jan 18 08:34:14 2016 +0100
@@ -1359,9 +1359,9 @@
// 'dst_start' points to dst array + scaled offset
Node* count = NULL;
if (compress) {
- count = compress_string(src_start, dst_start, length);
+ count = compress_string(src_start, TypeAryPtr::get_array_body_type(src_elem), dst_start, length);
} else {
- inflate_string(src_start, dst_start, length);
+ inflate_string(src_start, dst_start, TypeAryPtr::get_array_body_type(dst_elem), length);
}
if (alloc != NULL) {
@@ -1587,7 +1587,7 @@
(void) store_to_memory(control(), adr, ch, T_CHAR, TypeAryPtr::BYTES, MemNode::unordered,
false, false, true /* mismatched */);
} else {
- ch = make_load(control(), adr, TypeInt::CHAR, T_CHAR, MemNode::unordered,
+ ch = make_load(control(), adr, TypeInt::CHAR, T_CHAR, TypeAryPtr::BYTES, MemNode::unordered,
LoadNode::DependsOnlyOnTest, false, false, true /* mismatched */);
set_result(ch);
}