comparison 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
comparison
equal deleted inserted replaced
23392:b3a816d3b844 23393:1d4ce2d19e52
20 * or visit www.oracle.com if you need additional information or have any 20 * or visit www.oracle.com if you need additional information or have any
21 * questions. 21 * questions.
22 */ 22 */
23 package jdk.vm.ci.meta; 23 package jdk.vm.ci.meta;
24 24
25 public interface LineNumberTable { 25 public class LineNumberTable {
26 26
27 int[] getLineNumberEntries(); 27 private final int[] lineNumbers;
28 private final int[] bci;
28 29
29 int[] getBciEntries(); 30 public LineNumberTable(int[] lineNumbers, int[] bci) {
31 this.lineNumbers = lineNumbers;
32 this.bci = bci;
33 }
30 34
31 int getLineNumber(int bci); 35 public int[] getLineNumberEntries() {
36 return lineNumbers;
37 }
38
39 public int[] getBciEntries() {
40 return bci;
41 }
42
43 public int getLineNumber(int atBci) {
44 for (int i = 0; i < this.bci.length - 1; i++) {
45 if (this.bci[i] <= atBci && atBci < this.bci[i + 1]) {
46 return lineNumbers[i];
47 }
48 }
49 return lineNumbers[lineNumbers.length - 1];
50 }
32 } 51 }