Mercurial > hg > graal-jvmci-8
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 } |