public class org.jruby.util.WeakIdentityHashMap extends org.jruby.util.GenericMap implements java.util.Map
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.WeakIdentityHashMap
  super_class: org.jruby.util.GenericMap
{
  private static final float DEFAULT_RATIO;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.75

  private static final java.lang.Object NULL_KEY;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.ref.ReferenceQueue queue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.jruby.util.WeakIdentityHashMap$Entry[] table;
    descriptor: [Lorg/jruby/util/WeakIdentityHashMap$Entry;
    flags: (0x0002) ACC_PRIVATE

  private int range;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private float ratio;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 50
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.jruby.util.WeakIdentityHashMap.NULL_KEY:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.Object unmaskKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object key
         0: .line 55
            aload 0 /* key */
            getstatic org.jruby.util.WeakIdentityHashMap.NULL_KEY:Ljava/lang/Object;
            if_acmpne 2
         1: .line 56
            aconst_null
            areturn
         2: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* key */
            areturn
        end local 0 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  private java.lang.Object maskKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
         0: .line 63
            aload 1 /* key */
            ifnonnull 2
         1: .line 64
            getstatic org.jruby.util.WeakIdentityHashMap.NULL_KEY:Ljava/lang/Object;
            areturn
         2: .line 66
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    3     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  private int index(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int hash
         0: .line 131
            iload 1 /* hash */
            ldc 134217727
            iand
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.range:I
            irem
            ireturn
        end local 1 // int hash
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    1     1  hash  I
    MethodParameters:
      Name  Flags
      hash  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 135
            aload 0 /* this */
            invokespecial org.jruby.util.GenericMap.<init>:()V
         1: .line 52
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield org.jruby.util.WeakIdentityHashMap.queue:Ljava/lang/ref/ReferenceQueue;
         2: .line 136
            aload 0 /* this */
            iconst_3
            invokevirtual org.jruby.util.WeakIdentityHashMap.clear:(I)V
         3: .line 137
            return
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/util/WeakIdentityHashMap;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int size
         0: .line 139
            aload 0 /* this */
            invokespecial org.jruby.util.GenericMap.<init>:()V
         1: .line 52
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield org.jruby.util.WeakIdentityHashMap.queue:Ljava/lang/ref/ReferenceQueue;
         2: .line 140
            aload 0 /* this */
            iconst_3
            iload 1 /* size */
            i2f
            ldc 0.75
            fdiv
            invokestatic java.lang.Math.round:(F)I
            invokestatic java.lang.Math.max:(II)I
            invokevirtual org.jruby.util.WeakIdentityHashMap.clear:(I)V
         3: .line 141
            return
        end local 1 // int size
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    4     1  size  I
    MethodParameters:
      Name  Flags
      size  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 144
            aload 0 /* this */
            iconst_3
            invokevirtual org.jruby.util.WeakIdentityHashMap.clear:(I)V
         1: .line 145
            return
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/WeakIdentityHashMap;

  private void clear(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int size
         0: .line 148
            aload 0 /* this */
            iload 1 /* size */
            putfield org.jruby.util.WeakIdentityHashMap.range:I
         1: .line 149
            aload 0 /* this */
            iconst_0
            putfield org.jruby.util.WeakIdentityHashMap.size:I
         2: .line 150
            aload 0 /* this */
            ldc 0.75
            putfield org.jruby.util.WeakIdentityHashMap.ratio:F
         3: .line 151
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.range:I
            anewarray org.jruby.util.WeakIdentityHashMap$Entry
            putfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
         4: .line 152
            return
        end local 1 // int size
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    5     1  size  I
    MethodParameters:
      Name  Flags
      size  

  private void expunge();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 156
            goto 2
        start local 1 // org.jruby.util.WeakIdentityHashMap$Entry e
         1: .line 157
      StackMap locals: org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual org.jruby.util.WeakIdentityHashMap.removeEntry:(Lorg/jruby/util/WeakIdentityHashMap$Entry;)V
        end local 1 // org.jruby.util.WeakIdentityHashMap$Entry e
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.queue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast org.jruby.util.WeakIdentityHashMap$Entry
            dup
            astore 1 /* e */
        start local 1 // org.jruby.util.WeakIdentityHashMap$Entry e
         3: ifnonnull 1
         4: .line 159
            return
        end local 1 // org.jruby.util.WeakIdentityHashMap$Entry e
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            1    2     1     e  Lorg/jruby/util/WeakIdentityHashMap$Entry;
            3    5     1     e  Lorg/jruby/util/WeakIdentityHashMap$Entry;

  public java.lang.Object get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
         0: .line 163
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.maskKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* masked_key */
        start local 2 // java.lang.Object masked_key
         1: .line 164
            aload 0 /* this */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.keyHash:(Ljava/lang/Object;)I
            istore 3 /* hash */
        start local 3 // int hash
         2: .line 165
            aload 0 /* this */
            iload 3 /* hash */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.get:(ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // int hash
        end local 2 // java.lang.Object masked_key
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0    3     1         key  Ljava/lang/Object;
            1    3     2  masked_key  Ljava/lang/Object;
            2    3     3        hash  I
    MethodParameters:
      Name  Flags
      key   

  private java.lang.Object get(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int hash
        start local 2 // java.lang.Object masked_key
         0: .line 169
            aload 0 /* this */
            iload 1 /* hash */
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 3 /* idx */
        start local 3 // int idx
         1: .line 170
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.expunge:()V
         2: .line 171
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 3 /* idx */
            aaload
            astore 4 /* ent */
        start local 4 // org.jruby.util.WeakIdentityHashMap$Entry ent
         3: goto 7
         4: .line 172
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 4 /* ent */
            iload 1 /* hash */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.sameKey:(ILjava/lang/Object;)Z
            ifeq 6
         5: .line 173
            aload 4 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.value:Ljava/lang/Object;
            areturn
         6: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 4 /* ent */
      StackMap locals:
      StackMap stack:
         7: aload 4 /* ent */
            ifnonnull 4
        end local 4 // org.jruby.util.WeakIdentityHashMap$Entry ent
         8: .line 177
            aconst_null
            areturn
        end local 3 // int idx
        end local 2 // java.lang.Object masked_key
        end local 1 // int hash
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0    9     1        hash  I
            0    9     2  masked_key  Ljava/lang/Object;
            1    9     3         idx  I
            3    8     4         ent  Lorg/jruby/util/WeakIdentityHashMap$Entry;
    MethodParameters:
            Name  Flags
      hash        
      masked_key  

  public boolean containsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
         0: .line 183
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.maskKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* masked_key */
        start local 2 // java.lang.Object masked_key
         1: .line 184
            aload 0 /* this */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.keyHash:(Ljava/lang/Object;)I
            istore 3 /* hash */
        start local 3 // int hash
         2: .line 185
            aload 0 /* this */
            iload 3 /* hash */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.containsKey:(ILjava/lang/Object;)Z
            ireturn
        end local 3 // int hash
        end local 2 // java.lang.Object masked_key
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0    3     1         key  Ljava/lang/Object;
            1    3     2  masked_key  Ljava/lang/Object;
            2    3     3        hash  I
    MethodParameters:
      Name  Flags
      key   

  private boolean containsKey(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int hash
        start local 2 // java.lang.Object masked_key
         0: .line 189
            aload 0 /* this */
            iload 1 /* hash */
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 3 /* idx */
        start local 3 // int idx
         1: .line 190
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.expunge:()V
         2: .line 191
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 3 /* idx */
            aaload
            astore 4 /* ent */
        start local 4 // org.jruby.util.WeakIdentityHashMap$Entry ent
         3: goto 7
         4: .line 192
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 4 /* ent */
            iload 1 /* hash */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.sameKey:(ILjava/lang/Object;)Z
            ifeq 6
         5: .line 193
            iconst_1
            ireturn
         6: .line 191
      StackMap locals:
      StackMap stack:
            aload 4 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 4 /* ent */
      StackMap locals:
      StackMap stack:
         7: aload 4 /* ent */
            ifnonnull 4
        end local 4 // org.jruby.util.WeakIdentityHashMap$Entry ent
         8: .line 197
            iconst_0
            ireturn
        end local 3 // int idx
        end local 2 // java.lang.Object masked_key
        end local 1 // int hash
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0    9     1        hash  I
            0    9     2  masked_key  Ljava/lang/Object;
            1    9     3         idx  I
            3    8     4         ent  Lorg/jruby/util/WeakIdentityHashMap$Entry;
    MethodParameters:
            Name  Flags
      hash        
      masked_key  

  public java.lang.Object put(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
         0: .line 201
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.maskKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* masked_key */
        start local 3 // java.lang.Object masked_key
         1: .line 202
            aload 0 /* this */
            aload 3 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.keyHash:(Ljava/lang/Object;)I
            istore 4 /* hash */
        start local 4 // int hash
         2: .line 203
            aload 0 /* this */
            iload 4 /* hash */
            aload 3 /* masked_key */
            aload 2 /* value */
            invokevirtual org.jruby.util.WeakIdentityHashMap.put:(ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // int hash
        end local 3 // java.lang.Object masked_key
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0    3     1         key  Ljava/lang/Object;
            0    3     2       value  Ljava/lang/Object;
            1    3     3  masked_key  Ljava/lang/Object;
            2    3     4        hash  I
    MethodParameters:
       Name  Flags
      key    
      value  

  private java.lang.Object put(int, java.lang.Object, java.lang.Object);
    descriptor: (ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=6, args_size=4
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int hash
        start local 2 // java.lang.Object masked_key
        start local 3 // java.lang.Object value
         0: .line 207
            aload 0 /* this */
            iload 1 /* hash */
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 4 /* idx */
        start local 4 // int idx
         1: .line 209
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 4 /* idx */
            aaload
            astore 5 /* ent */
        start local 5 // org.jruby.util.WeakIdentityHashMap$Entry ent
         2: goto 6
         3: .line 210
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 5 /* ent */
            iload 1 /* hash */
            aload 2 /* masked_key */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.sameKey:(ILjava/lang/Object;)Z
            ifeq 5
         4: .line 211
            aload 5 /* ent */
            aload 3 /* value */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         5: .line 209
      StackMap locals:
      StackMap stack:
            aload 5 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 5 /* ent */
      StackMap locals:
      StackMap stack:
         6: aload 5 /* ent */
            ifnonnull 3
        end local 5 // org.jruby.util.WeakIdentityHashMap$Entry ent
         7: .line 215
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.expunge:()V
         8: .line 217
            fconst_1
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            i2f
            fmul
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.range:I
            i2f
            fdiv
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.ratio:F
            fcmpl
            ifle 11
         9: .line 218
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.grow:()V
        10: .line 219
            aload 0 /* this */
            iload 1 /* hash */
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 4 /* idx */
        11: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 4 /* idx */
            new org.jruby.util.WeakIdentityHashMap$Entry
            dup
            aload 0 /* this */
            iload 1 /* hash */
            aload 2 /* masked_key */
            aload 3 /* value */
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 4 /* idx */
            aaload
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.queue:Ljava/lang/ref/ReferenceQueue;
            invokespecial org.jruby.util.WeakIdentityHashMap$Entry.<init>:(Lorg/jruby/util/WeakIdentityHashMap;ILjava/lang/Object;Ljava/lang/Object;Lorg/jruby/util/WeakIdentityHashMap$Entry;Ljava/lang/ref/ReferenceQueue;)V
            aastore
        12: .line 224
            aload 0 /* this */
            dup
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            iconst_1
            iadd
            putfield org.jruby.util.WeakIdentityHashMap.size:I
        13: .line 226
            aconst_null
            areturn
        end local 4 // int idx
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object masked_key
        end local 1 // int hash
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/jruby/util/WeakIdentityHashMap;
            0   14     1        hash  I
            0   14     2  masked_key  Ljava/lang/Object;
            0   14     3       value  Ljava/lang/Object;
            1   14     4         idx  I
            2    7     5         ent  Lorg/jruby/util/WeakIdentityHashMap$Entry;
    MethodParameters:
            Name  Flags
      hash        
      masked_key  
      value       

  public java.lang.Object remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
         0: .line 230
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.maskKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* key */
         1: .line 231
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.keyHash:(Ljava/lang/Object;)I
            istore 2 /* hash */
        start local 2 // int hash
         2: .line 232
            aload 0 /* this */
            iload 2 /* hash */
            aload 1 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.remove:(ILjava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // int hash
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    3     1   key  Ljava/lang/Object;
            2    3     2  hash  I
    MethodParameters:
      Name  Flags
      key   

  public java.lang.Object remove(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // int hash
        start local 2 // java.lang.Object key
         0: .line 236
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap.maskKey:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* key */
         1: .line 237
            aload 0 /* this */
            iload 1 /* hash */
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 3 /* idx */
        start local 3 // int idx
         2: .line 239
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 3 /* idx */
            aaload
            astore 4 /* entry */
        start local 4 // org.jruby.util.WeakIdentityHashMap$Entry entry
         3: .line 240
            aload 4 /* entry */
            ifnull 17
         4: .line 242
            aload 4 /* entry */
            iload 1 /* hash */
            aload 2 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.sameKey:(ILjava/lang/Object;)Z
            ifeq 8
         5: .line 243
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 3 /* idx */
            aload 4 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            aastore
         6: .line 244
            aload 0 /* this */
            dup
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            iconst_1
            isub
            putfield org.jruby.util.WeakIdentityHashMap.size:I
         7: .line 245
            aload 4 /* entry */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.getValue:()Ljava/lang/Object;
            areturn
         8: .line 248
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 4 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 5 /* ahead */
        start local 5 // org.jruby.util.WeakIdentityHashMap$Entry ahead
         9: .line 250
            goto 16
        10: .line 251
      StackMap locals: org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 5 /* ahead */
            iload 1 /* hash */
            aload 2 /* key */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.sameKey:(ILjava/lang/Object;)Z
            ifeq 14
        11: .line 252
            aload 4 /* entry */
            aload 5 /* ahead */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            putfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
        12: .line 253
            aload 0 /* this */
            dup
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            iconst_1
            isub
            putfield org.jruby.util.WeakIdentityHashMap.size:I
        13: .line 254
            aload 5 /* ahead */
            invokevirtual org.jruby.util.WeakIdentityHashMap$Entry.getValue:()Ljava/lang/Object;
            areturn
        14: .line 257
      StackMap locals:
      StackMap stack:
            aload 5 /* ahead */
            astore 4 /* entry */
        15: .line 258
            aload 5 /* ahead */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 5 /* ahead */
        16: .line 250
      StackMap locals:
      StackMap stack:
            aload 5 /* ahead */
            ifnonnull 10
        end local 5 // org.jruby.util.WeakIdentityHashMap$Entry ahead
        17: .line 264
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.jruby.util.WeakIdentityHashMap$Entry entry
        end local 3 // int idx
        end local 2 // java.lang.Object key
        end local 1 // int hash
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/jruby/util/WeakIdentityHashMap;
            0   18     1   hash  I
            0   18     2    key  Ljava/lang/Object;
            2   18     3    idx  I
            3   18     4  entry  Lorg/jruby/util/WeakIdentityHashMap$Entry;
            9   17     5  ahead  Lorg/jruby/util/WeakIdentityHashMap$Entry;
    MethodParameters:
      Name  Flags
      hash  
      key   

  private void removeEntry(org.jruby.util.WeakIdentityHashMap$Entry);
    descriptor: (Lorg/jruby/util/WeakIdentityHashMap$Entry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // org.jruby.util.WeakIdentityHashMap$Entry ent
         0: .line 268
            aload 0 /* this */
            aload 1 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.key_hash:I
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 2 /* idx */
        start local 2 // int idx
         1: .line 270
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 2 /* idx */
            aaload
            astore 3 /* entry */
        start local 3 // org.jruby.util.WeakIdentityHashMap$Entry entry
         2: .line 271
            aload 3 /* entry */
            ifnull 16
         3: .line 273
            aload 3 /* entry */
            aload 1 /* ent */
            if_acmpne 7
         4: .line 274
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 2 /* idx */
            aload 3 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            aastore
         5: .line 275
            aload 0 /* this */
            dup
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            iconst_1
            isub
            putfield org.jruby.util.WeakIdentityHashMap.size:I
         6: .line 276
            return
         7: .line 279
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 3 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 4 /* ahead */
        start local 4 // org.jruby.util.WeakIdentityHashMap$Entry ahead
         8: .line 281
            goto 15
         9: .line 282
      StackMap locals: org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 4 /* ahead */
            aload 1 /* ent */
            if_acmpne 13
        10: .line 283
            aload 3 /* entry */
            aload 4 /* ahead */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            putfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
        11: .line 284
            aload 0 /* this */
            dup
            getfield org.jruby.util.WeakIdentityHashMap.size:I
            iconst_1
            isub
            putfield org.jruby.util.WeakIdentityHashMap.size:I
        12: .line 285
            return
        13: .line 288
      StackMap locals:
      StackMap stack:
            aload 4 /* ahead */
            astore 3 /* entry */
        14: .line 289
            aload 4 /* ahead */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 4 /* ahead */
        15: .line 281
      StackMap locals:
      StackMap stack:
            aload 4 /* ahead */
            ifnonnull 9
        end local 4 // org.jruby.util.WeakIdentityHashMap$Entry ahead
        16: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ent */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.value:Ljava/lang/Object;
            invokevirtual org.jruby.util.WeakIdentityHashMap.valueRemoved:(Ljava/lang/Object;)V
        17: .line 295
            return
        end local 3 // org.jruby.util.WeakIdentityHashMap$Entry entry
        end local 2 // int idx
        end local 1 // org.jruby.util.WeakIdentityHashMap$Entry ent
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/jruby/util/WeakIdentityHashMap;
            0   18     1    ent  Lorg/jruby/util/WeakIdentityHashMap$Entry;
            1   18     2    idx  I
            2   18     3  entry  Lorg/jruby/util/WeakIdentityHashMap$Entry;
            8   16     4  ahead  Lorg/jruby/util/WeakIdentityHashMap$Entry;
    MethodParameters:
      Name  Flags
      ent   

  protected void valueRemoved(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object value
         0: .line 299
            return
        end local 1 // java.lang.Object value
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/util/WeakIdentityHashMap;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  

  private void grow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 302
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.range:I
            istore 1 /* old_range */
        start local 1 // int old_range
         1: .line 303
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 2 /* old_table */
        start local 2 // org.jruby.util.WeakIdentityHashMap$Entry[] old_table
         2: .line 305
            aload 0 /* this */
            iload 1 /* old_range */
            iconst_2
            imul
            iconst_1
            iadd
            putfield org.jruby.util.WeakIdentityHashMap.range:I
         3: .line 306
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.range:I
            anewarray org.jruby.util.WeakIdentityHashMap$Entry
            putfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
         4: .line 308
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 15
         6: .line 309
      StackMap locals: int org.jruby.util.WeakIdentityHashMap$Entry[] int
      StackMap stack:
            aload 2 /* old_table */
            iload 3 /* i */
            aaload
            astore 4 /* entry */
        start local 4 // org.jruby.util.WeakIdentityHashMap$Entry entry
         7: .line 311
            goto 13
         8: .line 312
      StackMap locals: org.jruby.util.WeakIdentityHashMap$Entry
      StackMap stack:
            aload 4 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
            astore 5 /* ahead */
        start local 5 // org.jruby.util.WeakIdentityHashMap$Entry ahead
         9: .line 313
            aload 0 /* this */
            aload 4 /* entry */
            getfield org.jruby.util.WeakIdentityHashMap$Entry.key_hash:I
            invokevirtual org.jruby.util.WeakIdentityHashMap.index:(I)I
            istore 6 /* idx */
        start local 6 // int idx
        10: .line 314
            aload 4 /* entry */
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 6 /* idx */
            aaload
            putfield org.jruby.util.WeakIdentityHashMap$Entry.next:Lorg/jruby/util/WeakIdentityHashMap$Entry;
        11: .line 315
            aload 0 /* this */
            getfield org.jruby.util.WeakIdentityHashMap.table:[Lorg/jruby/util/WeakIdentityHashMap$Entry;
            iload 6 /* idx */
            aload 4 /* entry */
            aastore
        12: .line 316
            aload 5 /* ahead */
            astore 4 /* entry */
        end local 6 // int idx
        end local 5 // org.jruby.util.WeakIdentityHashMap$Entry ahead
        13: .line 311
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            ifnonnull 8
        end local 4 // org.jruby.util.WeakIdentityHashMap$Entry entry
        14: .line 308
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            iload 1 /* old_range */
            if_icmplt 6
        end local 3 // int i
        16: .line 319
            return
        end local 2 // org.jruby.util.WeakIdentityHashMap$Entry[] old_table
        end local 1 // int old_range
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lorg/jruby/util/WeakIdentityHashMap;
            1   17     1  old_range  I
            2   17     2  old_table  [Lorg/jruby/util/WeakIdentityHashMap$Entry;
            5   16     3          i  I
            7   14     4      entry  Lorg/jruby/util/WeakIdentityHashMap$Entry;
            9   13     5      ahead  Lorg/jruby/util/WeakIdentityHashMap$Entry;
           10   13     6        idx  I

  protected java.util.Iterator entryIterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 374
            new org.jruby.util.WeakIdentityHashMap$EntryIterator
            dup
            aload 0 /* this */
            invokespecial org.jruby.util.WeakIdentityHashMap$EntryIterator.<init>:(Lorg/jruby/util/WeakIdentityHashMap;)V
            areturn
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/WeakIdentityHashMap;

  protected final int keyHash(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key
         0: .line 379
            aload 1 /* key */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  protected final boolean keyEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.util.WeakIdentityHashMap this
        start local 1 // java.lang.Object key1
        start local 2 // java.lang.Object key2
         0: .line 384
            aload 1 /* key1 */
            aload 2 /* key2 */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // java.lang.Object key2
        end local 1 // java.lang.Object key1
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/WeakIdentityHashMap;
            0    2     1  key1  Ljava/lang/Object;
            0    2     2  key2  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key1  
      key2  

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 389
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.expunge:()V
         1: .line 390
            aload 0 /* this */
            invokespecial org.jruby.util.GenericMap.size:()I
            ireturn
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/WeakIdentityHashMap;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.WeakIdentityHashMap this
         0: .line 395
            aload 0 /* this */
            invokevirtual org.jruby.util.WeakIdentityHashMap.size:()I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.WeakIdentityHashMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/WeakIdentityHashMap;
}
SourceFile: "WeakIdentityHashMap.java"
NestMembers:
  org.jruby.util.WeakIdentityHashMap$Entry  org.jruby.util.WeakIdentityHashMap$EntryIterator
InnerClasses:
  Entry = org.jruby.util.WeakIdentityHashMap$Entry of org.jruby.util.WeakIdentityHashMap
  final EntryIterator = org.jruby.util.WeakIdentityHashMap$EntryIterator of org.jruby.util.WeakIdentityHashMap