final class org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV implements java.util.Iterator<TypeV>, java.util.Enumeration<TypeV>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV
  super_class: java.lang.Object
{
  final org.jruby.util.collections.NonBlockingHashMapLong$CHM _sschm;
    descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
    flags: (0x0010) ACC_FINAL

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

  private long _nextK;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long _prevK;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private TypeV _nextV;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Signature: TTypeV;

  private TypeV _prevV;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Signature: TTypeV;

  final org.jruby.util.collections.NonBlockingHashMapLong this$0;
    descriptor: Lorg/jruby/util/collections/NonBlockingHashMapLong;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.jruby.util.collections.NonBlockingHashMapLong);
    descriptor: (Lorg/jruby/util/collections/NonBlockingHashMapLong;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1004
            aload 0 /* this */
            aload 1
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.this$0:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1007
      StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV org.jruby.util.collections.NonBlockingHashMapLong
      StackMap stack:
            aload 1
            getfield org.jruby.util.collections.NonBlockingHashMapLong._chm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            astore 2 /* topchm */
        start local 2 // org.jruby.util.collections.NonBlockingHashMapLong$CHM topchm
         2: .line 1008
            aload 2 /* topchm */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._newchm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            ifnonnull 4
         3: .line 1009
            goto 6
         4: .line 1012
      StackMap locals: org.jruby.util.collections.NonBlockingHashMapLong$CHM
      StackMap stack:
            aload 2 /* topchm */
            iconst_1
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.help_copy_impl:(Z)V
        end local 2 // org.jruby.util.collections.NonBlockingHashMapLong$CHM topchm
         5: .line 1006
            goto 1
        start local 2 // org.jruby.util.collections.NonBlockingHashMapLong$CHM topchm
         6: .line 1017
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* topchm */
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._sschm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
         7: .line 1019
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
         8: .line 1020
            aload 0 /* this */
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.next:()Ljava/lang/Object;
            pop
         9: .line 1021
            return
        end local 2 // org.jruby.util.collections.NonBlockingHashMapLong$CHM topchm
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;
            2    5     2  topchm  Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            6   10     2  topchm  Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
    MethodParameters:
        Name  Flags
      this$0  final

  int length();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1022
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._sschm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
            arraylength
            ireturn
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;

  long key(int);
    descriptor: (I)J
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
        start local 1 // int idx
         0: .line 1023
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._sschm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            getfield org.jruby.util.collections.NonBlockingHashMapLong$CHM._keys:[J
            iload 1 /* idx */
            laload
            lreturn
        end local 1 // int idx
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;
            0    1     1   idx  I
    MethodParameters:
      Name  Flags
      idx   final

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1027
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;

  public TypeV next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1034
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
            iconst_m1
            if_icmpeq 1
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
            ifnonnull 1
            new java.util.NoSuchElementException
            dup
            invokespecial java.util.NoSuchElementException.<init>:()V
            athrow
         1: .line 1035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevK:J
         2: .line 1036
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
         3: .line 1037
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
         4: .line 1040
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
            iconst_m1
            if_icmpne 12
         5: .line 1041
            aload 0 /* this */
            iconst_0
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
         6: .line 1042
            aload 0 /* this */
            lconst_0
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
         7: .line 1043
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.this$0:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.get:(J)Ljava/lang/Object;
            dup_x1
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
            ifnull 12
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
            areturn
         8: .line 1046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            dup
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
            dup_x1
            iconst_1
            iadd
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.key:(I)J
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
         9: .line 1047
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
            lconst_0
            lcmp
            ifeq 12
        10: .line 1048
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.this$0:Lorg/jruby/util/collections/NonBlockingHashMapLong;
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextK:J
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong.get:(J)Ljava/lang/Object;
            dup_x1
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._nextV:Ljava/lang/Object;
            ifnull 12
        11: .line 1049
            goto 13
        12: .line 1045
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._idx:I
            aload 0 /* this */
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.length:()I
            if_icmplt 8
        13: .line 1051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
            areturn
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;
    Signature: ()TTypeV;

  public void remove();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1054
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
            ifnonnull 1
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         1: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._sschm:Lorg/jruby/util/collections/NonBlockingHashMapLong$CHM;
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevK:J
            getstatic org.jruby.util.collections.NonBlockingHashMapLong.TOMBSTONE:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$CHM.putIfMatch:(JLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1056
            aload 0 /* this */
            aconst_null
            putfield org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV._prevV:Ljava/lang/Object;
         3: .line 1057
            return
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;

  public TypeV nextElement();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1058
            aload 0 /* this */
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.next:()Ljava/lang/Object;
            areturn
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;
    Signature: ()TTypeV;

  public boolean hasMoreElements();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
         0: .line 1059
            aload 0 /* this */
            invokevirtual org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV.hasNext:()Z
            ireturn
        end local 0 // org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/collections/NonBlockingHashMapLong$SnapshotV;
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<TTypeV;>;Ljava/util/Enumeration<TTypeV;>;
SourceFile: "NonBlockingHashMapLong.java"
NestHost: org.jruby.util.collections.NonBlockingHashMapLong
InnerClasses:
  private final CHM = org.jruby.util.collections.NonBlockingHashMapLong$CHM of org.jruby.util.collections.NonBlockingHashMapLong
  private final SnapshotV = org.jruby.util.collections.NonBlockingHashMapLong$SnapshotV of org.jruby.util.collections.NonBlockingHashMapLong