[ 
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)

Reply via email to