home *** CD-ROM | disk | FTP | other *** search
- package espresso;
-
- class Pool {
- ConstEntry[] constants = new ConstEntry[2048];
- Object[] pool = new Object[64];
- // $FF: renamed from: pp int
- int field_0 = 1;
- static final int HASH_MASK = 2047;
- static final int HASH_SIZE = 2048;
-
- int get(Object var1) {
- ConstEntry var2;
- for(var2 = this.constants[var1.hashCode() & 2047]; var2 != null && !var2.obj.equals(var1); var2 = var2.next) {
- }
-
- return var2.index;
- }
-
- int put(Object var1) {
- int var2 = var1.hashCode() & 2047;
-
- ConstEntry var3;
- for(var3 = this.constants[var2]; var3 != null && !var3.obj.equals(var1); var3 = var3.next) {
- }
-
- if (var3 == null) {
- var3 = new ConstEntry(this.constants[var2], var1, this.field_0);
- this.constants[var2] = var3;
- if (this.field_0 == this.pool.length) {
- this.doublePool();
- }
-
- this.pool[this.field_0++] = var1;
- if (var1 instanceof Long || var1 instanceof Double) {
- if (this.field_0 == this.pool.length) {
- this.doublePool();
- }
-
- this.pool[this.field_0++] = null;
- }
- }
-
- return var3.index;
- }
-
- private void doublePool() {
- Object[] var1 = new Object[this.pool.length * 2];
- System.arraycopy(this.pool, 0, var1, 0, this.pool.length);
- this.pool = var1;
- }
-
- void reset() {
- this.field_0 = 1;
-
- for(int var1 = 0; var1 < 2048; ++var1) {
- this.constants[var1] = null;
- }
-
- }
-
- public Pool() {
- }
- }
-