Mercurial > hg > graal-compiler
changeset 18850:3a59e1411192
Make sure the JSRData is cloned when the BciBlock is cloned.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 13 Jan 2015 01:55:12 +0100 |
parents | 55a30b4beb5f |
children | 4b4421dafcaa |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java |
diffstat | 1 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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<JsrScope, BciBlock> 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) {