home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / tools / asm / LocalVariableTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  1.7 KB  |  45 lines

  1. package sun.tools.asm;
  2.  
  3. import java.io.DataOutputStream;
  4. import java.io.IOException;
  5. import sun.tools.java.Environment;
  6. import sun.tools.java.FieldDefinition;
  7.  
  8. final class LocalVariableTable {
  9.    LocalVariable[] locals = new LocalVariable[8];
  10.    int len;
  11.  
  12.    void define(FieldDefinition var1, int var2, int var3, int var4) {
  13.       if (var3 < var4) {
  14.          for(int var5 = 0; var5 < this.len; ++var5) {
  15.             if (this.locals[var5].field == var1 && this.locals[var5].slot == var2 && var3 <= this.locals[var5].to && var4 >= this.locals[var5].from) {
  16.                this.locals[var5].from = Math.min(this.locals[var5].from, var3);
  17.                this.locals[var5].to = Math.max(this.locals[var5].to, var4);
  18.                return;
  19.             }
  20.          }
  21.  
  22.          if (this.len == this.locals.length) {
  23.             LocalVariable[] var6 = new LocalVariable[this.len * 2];
  24.             System.arraycopy(this.locals, 0, var6, 0, this.len);
  25.             this.locals = var6;
  26.          }
  27.  
  28.          this.locals[this.len++] = new LocalVariable(var1, var2, var3, var4);
  29.       }
  30.    }
  31.  
  32.    void write(Environment var1, DataOutputStream var2, ConstantPool var3) throws IOException {
  33.       var2.writeShort(this.len);
  34.  
  35.       for(int var4 = 0; var4 < this.len; ++var4) {
  36.          var2.writeShort(this.locals[var4].from);
  37.          var2.writeShort(this.locals[var4].to - this.locals[var4].from);
  38.          var2.writeShort(var3.index(this.locals[var4].field.getName().toString()));
  39.          var2.writeShort(var3.index(this.locals[var4].field.getType().getTypeSignature()));
  40.          var2.writeShort(this.locals[var4].slot);
  41.       }
  42.  
  43.    }
  44. }
  45.