[
https://issues.apache.org/jira/browse/BCEL-51?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Bourg updated BCEL-51:
-------------------------------
Description:
This patch, adds another method to LocalVariableTable that looks up a
LocalVariable by index AND PC.
{code}
Index: src/java/org/apache/bcel/classfile/LocalVariableTable.java
===================================================================
RCS file: /home/cvspublic/jakarta-
bcel/src/java/org/apache/bcel/classfile/LocalVariableTable.java,v
retrieving revision 1.3
diff -u -r1.3 LocalVariableTable.java
--- src/java/org/apache/bcel/classfile/LocalVariableTable.java 23 May 2003
07:55:12 -0000 1.3
+++ src/java/org/apache/bcel/classfile/LocalVariableTable.java 5 Nov 2004
05:39:25 -0000
@@ -155,6 +155,19 @@
return null;
}
+ /** @return matching variable using index when variable is used at supplied
pc
+ */
+ public final LocalVariable getLocalVariable(int index, int pc) {
+ for(int i=0; i < local_variable_table_length; i++)
+ if(local_variable_table[i].getIndex() == index) {
+ int start_pc = local_variable_table[i].getStartPC();
+ int end_pc = start_pc + local_variable_table[i].getLength();
+ return local_variable_table[i];
+ }
+
+ return null;
+ }
+
public final void setLocalVariableTable(LocalVariable[]
local_variable_table)
{
this.local_variable_table = local_variable_table;
{code}
was:
This patch, adds another method to LocalVariableTable that looks up a
LocalVariable by index AND PC.
-----------------
Index: src/java/org/apache/bcel/classfile/LocalVariableTable.java
===================================================================
RCS file: /home/cvspublic/jakarta-
bcel/src/java/org/apache/bcel/classfile/LocalVariableTable.java,v
retrieving revision 1.3
diff -u -r1.3 LocalVariableTable.java
--- src/java/org/apache/bcel/classfile/LocalVariableTable.java 23 May 2003
07:55:12 -0000 1.3
+++ src/java/org/apache/bcel/classfile/LocalVariableTable.java 5 Nov 2004
05:39:25 -0000
@@ -155,6 +155,19 @@
return null;
}
+ /** @return matching variable using index when variable is used at supplied
pc
+ */
+ public final LocalVariable getLocalVariable(int index, int pc) {
+ for(int i=0; i < local_variable_table_length; i++)
+ if(local_variable_table[i].getIndex() == index) {
+ int start_pc = local_variable_table[i].getStartPC();
+ int end_pc = start_pc + local_variable_table[i].getLength();
+ return local_variable_table[i];
+ }
+
+ return null;
+ }
+
public final void setLocalVariableTable(LocalVariable[]
local_variable_table)
{
this.local_variable_table = local_variable_table;
Priority: Minor
Environment: (was: Operating System: All
Platform: PC)
Fix Version/s: 5.2
Priority: (was: P3)
Severity: (was: enhancement)
Summary: LocalVariableTable.getLocalVariable isn't good enough (was:
[PATCH] LocalVariableTable.getLocalVariable isn't good enough)
> LocalVariableTable.getLocalVariable isn't good enough
> -----------------------------------------------------
>
> Key: BCEL-51
> URL: https://issues.apache.org/jira/browse/BCEL-51
> Project: Commons BCEL
> Issue Type: Improvement
> Components: Main
> Affects Versions: 5.1
> Reporter: Dave Brosius
> Assignee: Apache Commons Developers
> Priority: Minor
> Fix For: 5.2
>
> Attachments: lvt.patch
>
>
> This patch, adds another method to LocalVariableTable that looks up a
> LocalVariable by index AND PC.
> {code}
> Index: src/java/org/apache/bcel/classfile/LocalVariableTable.java
> ===================================================================
> RCS file: /home/cvspublic/jakarta-
> bcel/src/java/org/apache/bcel/classfile/LocalVariableTable.java,v
> retrieving revision 1.3
> diff -u -r1.3 LocalVariableTable.java
> --- src/java/org/apache/bcel/classfile/LocalVariableTable.java 23 May
> 2003
> 07:55:12 -0000 1.3
> +++ src/java/org/apache/bcel/classfile/LocalVariableTable.java 5 Nov
> 2004
> 05:39:25 -0000
> @@ -155,6 +155,19 @@
> return null;
> }
>
> + /** @return matching variable using index when variable is used at
> supplied
> pc
> + */
> + public final LocalVariable getLocalVariable(int index, int pc) {
> + for(int i=0; i < local_variable_table_length; i++)
> + if(local_variable_table[i].getIndex() == index) {
> + int start_pc = local_variable_table[i].getStartPC();
> + int end_pc = start_pc + local_variable_table[i].getLength();
> + return local_variable_table[i];
> + }
> +
> + return null;
> + }
> +
> public final void setLocalVariableTable(LocalVariable[]
> local_variable_table)
> {
> this.local_variable_table = local_variable_table;
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)