1 26 package com.yworks.yguard.obf.classfile; 27 28 import java.io.*; 29 import java.util.*; 30 31 36 public class LocalVariableTableAttrInfo extends AttrInfo 37 { 38 40 41 private int u2localVariableTableLength; 43 private LocalVariableInfo[] localVariableTable; 44 45 46 48 49 protected LocalVariableTableAttrInfo(ClassFile cf, int attrNameIndex, int attrLength) 51 { 52 super(cf, attrNameIndex, attrLength); 53 } 54 55 56 protected String getAttrName() 57 { 58 return ATTR_LocalVariableTable; 59 } 60 61 62 protected LocalVariableInfo[] getLocalVariableTable() 63 { 64 return localVariableTable; 65 } 66 67 public void setLocalVariableTable(LocalVariableInfo[] lvts) { 68 this.localVariableTable = lvts; 69 this.u2localVariableTableLength = lvts.length; 70 this.u4attrLength = 2 + 10 * u2localVariableTableLength; 71 } 72 73 74 protected void markUtf8RefsInInfo(ConstantPool pool) 75 { 76 for (int i = 0; i < localVariableTable.length; i++) 77 { 78 localVariableTable[i].markUtf8Refs(pool); 79 } 80 } 81 82 83 protected void readInfo(DataInput din) throws java.io.IOException 84 { 85 u2localVariableTableLength = din.readUnsignedShort(); 86 localVariableTable = new LocalVariableInfo[u2localVariableTableLength]; 87 for (int i = 0; i < u2localVariableTableLength; i++) 88 { 89 localVariableTable[i] = LocalVariableInfo.create(din); 90 } 91 } 92 93 94 public void writeInfo(DataOutput dout) throws java.io.IOException 95 { 96 dout.writeShort(u2localVariableTableLength); 97 for (int i = 0; i < u2localVariableTableLength; i++) 98 { 99 localVariableTable[i].write(dout); 100 } 101 } 102 103 } 104 105 | Popular Tags |