< prev index next >
src/share/vm/opto/arraycopynode.cpp
Print this page
*** 202,212 ****
s = phase->transform(s);
mem->set_memory_at(fieldidx, s);
}
if (!finish_transform(phase, can_reshape, ctl, mem)) {
! return NULL;
}
return mem;
}
--- 202,213 ----
s = phase->transform(s);
mem->set_memory_at(fieldidx, s);
}
if (!finish_transform(phase, can_reshape, ctl, mem)) {
! // Return NodeSentinel to indicate that the transform failed
! return NodeSentinel;
}
return mem;
}
*** 220,229 ****
--- 221,231 ----
bool& disjoint_bases) {
Node* src = in(ArrayCopyNode::Src);
Node* dest = in(ArrayCopyNode::Dest);
const Type* src_type = phase->type(src);
const TypeAryPtr* ary_src = src_type->isa_aryptr();
+ assert(ary_src != NULL, "should be an array copy/clone");
if (is_arraycopy() || is_copyofrange() || is_copyof()) {
const Type* dest_type = phase->type(dest);
const TypeAryPtr* ary_dest = dest_type->isa_aryptr();
Node* src_offset = in(ArrayCopyNode::SrcPos);
*** 518,528 ****
return NULL;
}
Node* mem = try_clone_instance(phase, can_reshape, count);
if (mem != NULL) {
! return mem;
}
Node* adr_src = NULL;
Node* base_src = NULL;
Node* adr_dest = NULL;
--- 520,530 ----
return NULL;
}
Node* mem = try_clone_instance(phase, can_reshape, count);
if (mem != NULL) {
! return (mem == NodeSentinel) ? NULL : mem;
}
Node* adr_src = NULL;
Node* base_src = NULL;
Node* adr_dest = NULL;
< prev index next >