home *** CD-ROM | disk | FTP | other *** search
/ Tutto per Internet / Internet.iso / soft95 / Java / espints / espinst.exe / classes / espresso / Pool.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-02-28  |  1.3 KB  |  64 lines

  1. package espresso;
  2.  
  3. class Pool {
  4.    ConstEntry[] constants = new ConstEntry[2048];
  5.    Object[] pool = new Object[64];
  6.    // $FF: renamed from: pp int
  7.    int field_0 = 1;
  8.    static final int HASH_MASK = 2047;
  9.    static final int HASH_SIZE = 2048;
  10.  
  11.    int get(Object var1) {
  12.       ConstEntry var2;
  13.       for(var2 = this.constants[var1.hashCode() & 2047]; var2 != null && !var2.obj.equals(var1); var2 = var2.next) {
  14.       }
  15.  
  16.       return var2.index;
  17.    }
  18.  
  19.    int put(Object var1) {
  20.       int var2 = var1.hashCode() & 2047;
  21.  
  22.       ConstEntry var3;
  23.       for(var3 = this.constants[var2]; var3 != null && !var3.obj.equals(var1); var3 = var3.next) {
  24.       }
  25.  
  26.       if (var3 == null) {
  27.          var3 = new ConstEntry(this.constants[var2], var1, this.field_0);
  28.          this.constants[var2] = var3;
  29.          if (this.field_0 == this.pool.length) {
  30.             this.doublePool();
  31.          }
  32.  
  33.          this.pool[this.field_0++] = var1;
  34.          if (var1 instanceof Long || var1 instanceof Double) {
  35.             if (this.field_0 == this.pool.length) {
  36.                this.doublePool();
  37.             }
  38.  
  39.             this.pool[this.field_0++] = null;
  40.          }
  41.       }
  42.  
  43.       return var3.index;
  44.    }
  45.  
  46.    private void doublePool() {
  47.       Object[] var1 = new Object[this.pool.length * 2];
  48.       System.arraycopy(this.pool, 0, var1, 0, this.pool.length);
  49.       this.pool = var1;
  50.    }
  51.  
  52.    void reset() {
  53.       this.field_0 = 1;
  54.  
  55.       for(int var1 = 0; var1 < 2048; ++var1) {
  56.          this.constants[var1] = null;
  57.       }
  58.  
  59.    }
  60.  
  61.    public Pool() {
  62.    }
  63. }
  64.