hotspot/src/share/vm/opto/library_call.cpp
changeset 30226 5f1a3a275862
parent 30209 8ea30dc99369
child 31035 0f0743952c41
--- a/hotspot/src/share/vm/opto/library_call.cpp	Tue Apr 14 11:43:18 2015 +0100
+++ b/hotspot/src/share/vm/opto/library_call.cpp	Wed Apr 15 11:01:56 2015 +0200
@@ -3943,21 +3943,23 @@
         validated = true;
       }
 
-      newcopy = new_array(klass_node, length, 0);  // no arguments to push
-
-      ArrayCopyNode* ac = ArrayCopyNode::make(this, true, original, start, newcopy, intcon(0), moved, true,
-                                              load_object_klass(original), klass_node);
-      if (!is_copyOfRange) {
-        ac->set_copyof(validated);
-      } else {
-        ac->set_copyofrange(validated);
-      }
-      Node* n = _gvn.transform(ac);
-      if (n == ac) {
-        ac->connect_outputs(this);
-      } else {
-        assert(validated, "shouldn't transform if all arguments not validated");
-        set_all_memory(n);
+      if (!stopped()) {
+        newcopy = new_array(klass_node, length, 0);  // no arguments to push
+
+        ArrayCopyNode* ac = ArrayCopyNode::make(this, true, original, start, newcopy, intcon(0), moved, true,
+                                                load_object_klass(original), klass_node);
+        if (!is_copyOfRange) {
+          ac->set_copyof(validated);
+        } else {
+          ac->set_copyofrange(validated);
+        }
+        Node* n = _gvn.transform(ac);
+        if (n == ac) {
+          ac->connect_outputs(this);
+        } else {
+          assert(validated, "shouldn't transform if all arguments not validated");
+          set_all_memory(n);
+        }
       }
     }
   } // original reexecute is set back here