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 / java / BinaryCode.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  2.5 KB  |  71 lines

  1. package sun.tools.java;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.io.DataInputStream;
  5. import java.io.FilterInputStream;
  6. import java.io.IOException;
  7.  
  8. public class BinaryCode implements Constants {
  9.    int maxStack;
  10.    int maxLocals;
  11.    BinaryExceptionHandler[] exceptionHandlers;
  12.    BinaryAttribute atts;
  13.    BinaryConstantPool cpool;
  14.    byte[] code;
  15.  
  16.    public BinaryCode(byte[] var1, BinaryConstantPool var2, Environment var3) {
  17.       DataInputStream var4 = new DataInputStream(new ByteArrayInputStream(var1));
  18.  
  19.       try {
  20.          this.cpool = var2;
  21.          this.maxStack = var4.readShort();
  22.          this.maxLocals = var4.readShort();
  23.          int var5 = var4.readInt();
  24.          this.code = new byte[var5];
  25.          var4.read(this.code);
  26.          short var6 = var4.readShort();
  27.          this.exceptionHandlers = new BinaryExceptionHandler[var6];
  28.  
  29.          for(int var7 = 0; var7 < var6; ++var7) {
  30.             short var8 = var4.readShort();
  31.             short var9 = var4.readShort();
  32.             short var10 = var4.readShort();
  33.             ClassDeclaration var11 = var2.getDeclaration(var3, var4.readShort());
  34.             this.exceptionHandlers[var7] = new BinaryExceptionHandler(var8, var9, var10, var11);
  35.          }
  36.  
  37.          this.atts = BinaryAttribute.load(var4, var2, -1);
  38.          if (((FilterInputStream)var4).available() != 0) {
  39.             System.err.println("Should have exhausted input stream!");
  40.          }
  41.       } catch (IOException var12) {
  42.          throw new CompilerError(var12);
  43.       }
  44.    }
  45.  
  46.    public BinaryExceptionHandler[] getExceptionHandlers() {
  47.       return this.exceptionHandlers;
  48.    }
  49.  
  50.    public byte[] getCode() {
  51.       return this.code;
  52.    }
  53.  
  54.    public int getMaxStack() {
  55.       return this.maxStack;
  56.    }
  57.  
  58.    public int getMaxLocals() {
  59.       return this.maxLocals;
  60.    }
  61.  
  62.    public BinaryAttribute getAttributes() {
  63.       return this.atts;
  64.    }
  65.  
  66.    public static BinaryCode load(BinaryField var0, BinaryConstantPool var1, Environment var2) {
  67.       byte[] var3 = var0.getAttribute(Constants.idCode);
  68.       return var3 != null ? new BinaryCode(var3, var1, var2) : null;
  69.    }
  70. }
  71.