Mercurial > hg > truffle
diff src/share/vm/opto/memnode.cpp @ 2014:4de5f4101cfd
Merge
author | iveresov |
---|---|
date | Wed, 08 Dec 2010 17:50:49 -0800 |
parents | 4da76e32c0be |
children | 5a41a201d08c |
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.cpp Wed Dec 08 04:50:35 2010 -0800 +++ b/src/share/vm/opto/memnode.cpp Wed Dec 08 17:50:49 2010 -0800 @@ -3599,10 +3599,12 @@ intptr_t size_limit = phase->find_intptr_t_con(size_in_bytes, max_jint); if (zeroes_done + BytesPerLong >= size_limit) { assert(allocation() != NULL, ""); - Node* klass_node = allocation()->in(AllocateNode::KlassNode); - ciKlass* k = phase->type(klass_node)->is_klassptr()->klass(); - if (zeroes_done == k->layout_helper()) - zeroes_done = size_limit; + if (allocation()->Opcode() == Op_Allocate) { + Node* klass_node = allocation()->in(AllocateNode::KlassNode); + ciKlass* k = phase->type(klass_node)->is_klassptr()->klass(); + if (zeroes_done == k->layout_helper()) + zeroes_done = size_limit; + } } if (zeroes_done < size_limit) { rawmem = ClearArrayNode::clear_memory(rawctl, rawmem, rawptr,