src/share/vm/opto/macroArrayCopy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/macroArrayCopy.cpp Mon Sep 1 11:49:30 2014
--- new/src/share/vm/opto/macroArrayCopy.cpp Mon Sep 1 11:49:30 2014
*** 504,513 ****
--- 504,515 ----
// Get the klass* for both src and dest
Node* src_klass = ac->in(ArrayCopyNode::SrcKlass);
Node* dest_klass = ac->in(ArrayCopyNode::DestKlass);
+ assert(src_klass != NULL && dest_klass != NULL, "should have klasses");
+
// Generate the subtype check.
// This might fold up statically, or then again it might not.
//
// Non-static example: Copying List<String>.elements to a new String[].
// The backing store for a List<String> is always an Object[],
*** 1207,1223 ****
--- 1209,1227 ----
// (6) length must not be negative (moved to generate_arraycopy()).
// generate_negative_guard(length, slow_region);
// (7) src_offset + length must not exceed length of src.
Node* alen = ac->in(ArrayCopyNode::SrcLen);
+ assert(alen != NULL, "need src len");
generate_limit_guard(&ctrl,
src_offset, length,
alen,
slow_region);
// (8) dest_offset + length must not exceed length of dest.
alen = ac->in(ArrayCopyNode::DestLen);
+ assert(alen != NULL, "need dest len");
generate_limit_guard(&ctrl,
dest_offset, length,
alen,
slow_region);
src/share/vm/opto/macroArrayCopy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File