You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by bu...@apache.org on 2004/11/05 06:45:05 UTC

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

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: bcel-dev@jakarta.apache.org
        ReportedBy: dbrosius@qis.net


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;

---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org