1 19 20 25 26 27 28 29 30 31 32 package soot.coffi; 33 import soot.*; 34 35 import java.io.*; 36 37 42 class LocalVariableTable_attribute extends attribute_info { 43 44 public int local_variable_table_length; 45 46 public local_variable_table_entry local_variable_table[]; 47 48 54 public String getLocalVariableName(cp_info constant_pool[],int idx) { 55 return getLocalVariableName(constant_pool,idx,-1); 56 } 57 65 public String getLocalVariableName(cp_info constant_pool[],int idx,int code) { 66 local_variable_table_entry e; 67 CONSTANT_Utf8_info cu; 68 int i; 69 70 for (i=0;i<local_variable_table_length;i++) { 73 e = local_variable_table[i]; 74 if (e.index==idx && 75 (code==-1 || 76 (code>=e.start_pc && code<=e.start_pc+e.length))){ 77 80 82 if (constant_pool[e.name_index] instanceof CONSTANT_Utf8_info) 83 { 84 String n = ((CONSTANT_Utf8_info)(constant_pool[e.name_index])).convert(); 85 if (Util.v().isValidJimpleName(n)) 86 return n; 87 else 88 return null; 89 } 90 else { 91 throw new RuntimeException ( "What? A local variable table " 92 +"name_index isn't a UTF8 entry?"); 93 } 94 } 95 } 96 return null; 97 } 98 99 public String toString() 100 { 101 StringBuffer buffer = new StringBuffer (); 102 103 for(int i = 0; i < local_variable_table_length; i++) 104 { 105 buffer.append(local_variable_table[i].toString() + "\n"); 106 } 107 108 return buffer.toString(); 109 } 110 } 111 112 | Popular Tags |