# HG changeset patch # User Thomas Wuerthinger # Date 1421110512 -3600 # Node ID 3a59e14111927ab3ff09cfb66b58085511b36c8e # Parent 55a30b4beb5f01d435c9be1edb21666c7ef4ae9a Make sure the JSRData is cloned when the BciBlock is cloned. diff -r 55a30b4beb5f -r 3a59e1411192 graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Mon Jan 12 21:24:26 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Tue Jan 13 01:55:12 2015 +0100 @@ -97,13 +97,21 @@ public long loops; public JSRData jsrData; - public static class JSRData { + public static class JSRData implements Cloneable { public HashMap jsrAlternatives; public JsrScope jsrScope = JsrScope.EMPTY_SCOPE; public BciBlock jsrSuccessor; public int jsrReturnBci; public BciBlock retSuccessor; public boolean endsWithRet = false; + + public JSRData copy() { + try { + return (JSRData) this.clone(); + } catch (CloneNotSupportedException e) { + return null; + } + } } public BciBlock() { @@ -127,6 +135,9 @@ public BciBlock copy() { try { BciBlock block = (BciBlock) super.clone(); + if (block.jsrData != null) { + block.jsrData = block.jsrData.copy(); + } block.successors = new ArrayList<>(successors); return block; } catch (CloneNotSupportedException e) {