DO NOT REPLY [Bug 32077] New: - LocalVariableTable.getLocalVariable isn't good enough

[email protected]
Newsgroups gmane.comp.jakarta.bcel.devel
Message-ID <[email protected]>
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=32077>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=32077

LocalVariableTable.getLocalVariable isn't good enough

           Summary: LocalVariableTable.getLocalVariable isn't good enough
           Product: BCEL
           Version: 5.1
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Main
        AssignedTo: [email protected]
        ReportedBy: [email protected]


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;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.