hotspot/src/share/vm/opto/memnode.cpp
changeset 7429 32743cb705a2
parent 7397 5b173b4ca846
child 8491 058b35a9d008
--- a/hotspot/src/share/vm/opto/memnode.cpp	Tue Nov 30 23:14:25 2010 -0800
+++ b/hotspot/src/share/vm/opto/memnode.cpp	Wed Dec 01 10:16:31 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,