Mercurial > hg > graal-jvmci-8
diff jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LineNumberTable.java @ 23393:1d4ce2d19e52
clean up and minimize JVMCI (JDK-8156835)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 12 May 2016 20:57:31 +0200 |
parents | 1bbd4a7c274b |
children | 9e1235406b59 |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LineNumberTable.java Thu May 12 11:06:49 2016 +0200 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LineNumberTable.java Thu May 12 20:57:31 2016 +0200 @@ -22,11 +22,30 @@ */ package jdk.vm.ci.meta; -public interface LineNumberTable { +public class LineNumberTable { + + private final int[] lineNumbers; + private final int[] bci; - int[] getLineNumberEntries(); + public LineNumberTable(int[] lineNumbers, int[] bci) { + this.lineNumbers = lineNumbers; + this.bci = bci; + } + + public int[] getLineNumberEntries() { + return lineNumbers; + } - int[] getBciEntries(); + public int[] getBciEntries() { + return bci; + } - int getLineNumber(int bci); + public int getLineNumber(int atBci) { + for (int i = 0; i < this.bci.length - 1; i++) { + if (this.bci[i] <= atBci && atBci < this.bci[i + 1]) { + return lineNumbers[i]; + } + } + return lineNumbers[lineNumbers.length - 1]; + } }