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,