public final class org.jruby.RubySymbol$SymbolTable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jruby.RubySymbol$SymbolTable
  super_class: java.lang.Object
{
  static final int DEFAULT_INITIAL_CAPACITY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  static final int MAXIMUM_CAPACITY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  static final float DEFAULT_LOAD_FACTOR;
    descriptor: F
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0.75

  private final java.util.concurrent.locks.ReentrantLock tableLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile org.jruby.RubySymbol$SymbolTable$SymbolEntry[] symbolTable;
    descriptor: [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

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

  private final float loadFactor;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jruby.Ruby runtime;
    descriptor: Lorg/jruby/Ruby;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.Ruby runtime
         0: .line 951
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 944
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield org.jruby.RubySymbol$SymbolTable.tableLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 952
            aload 0 /* this */
            aload 1 /* runtime */
            putfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
         3: .line 953
            aload 0 /* this */
            ldc 0.75
            putfield org.jruby.RubySymbol$SymbolTable.loadFactor:F
         4: .line 954
            aload 0 /* this */
            sipush 768
            putfield org.jruby.RubySymbol$SymbolTable.threshold:I
         5: .line 955
            aload 0 /* this */
            sipush 1024
            anewarray org.jruby.RubySymbol$SymbolTable$SymbolEntry
            putfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
         6: .line 956
            return
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/RubySymbol$SymbolTable;
            0    7     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public org.jruby.RubySymbol getSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
         0: .line 989
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            invokevirtual org.jruby.RubySymbol$SymbolTable.getSymbol:(Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubySymbol$SymbolTable;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public org.jruby.RubySymbol getSymbol(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
        start local 2 // boolean hard
         0: .line 993
            aload 1 /* name */
            invokestatic org.jruby.RubySymbol.javaStringHashCode:(Ljava/lang/String;)I
            istore 3 /* hash */
        start local 3 // int hash
         1: .line 994
            aconst_null
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         2: .line 996
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            iload 3 /* hash */
            invokestatic org.jruby.RubySymbol$SymbolTable.getEntryFromTable:([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         3: goto 9
         4: .line 997
      StackMap locals: int org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 1 /* name */
            iload 3 /* hash */
            aload 5 /* e */
            invokestatic org.jruby.RubySymbol$SymbolTable.isSymbolMatch:(Ljava/lang/String;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)Z
            ifeq 8
         5: .line 998
            iload 2 /* hard */
            ifeq 6
            aload 5 /* e */
            invokevirtual org.jruby.RubySymbol$SymbolTable$SymbolEntry.setHardReference:()V
         6: .line 999
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 4 /* symbol */
         7: .line 1000
            goto 10
         8: .line 996
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
      StackMap locals:
      StackMap stack:
         9: aload 5 /* e */
            ifnonnull 4
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        10: .line 1004
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            ifnonnull 11
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
            aload 1 /* name */
            invokestatic org.jruby.RubySymbol.symbolBytesFromString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/ByteList;
            iload 3 /* hash */
            iload 2 /* hard */
            invokevirtual org.jruby.RubySymbol$SymbolTable.createSymbol:(Ljava/lang/String;Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
            astore 4 /* symbol */
        11: .line 1006
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            areturn
        end local 4 // org.jruby.RubySymbol symbol
        end local 3 // int hash
        end local 2 // boolean hard
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0   12     1    name  Ljava/lang/String;
            0   12     2    hard  Z
            1   12     3    hash  I
            2   12     4  symbol  Lorg/jruby/RubySymbol;
            3   10     5       e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
      Name  Flags
      name  
      hard  

  public org.jruby.RubySymbol getSymbol(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.util.ByteList bytes
         0: .line 1010
            aload 0 /* this */
            aload 1 /* bytes */
            iconst_0
            invokevirtual org.jruby.RubySymbol$SymbolTable.getSymbol:(Lorg/jruby/util/ByteList;Z)Lorg/jruby/RubySymbol;
            areturn
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/RubySymbol$SymbolTable;
            0    1     1  bytes  Lorg/jruby/util/ByteList;
    MethodParameters:
       Name  Flags
      bytes  

  public org.jruby.RubySymbol getSymbol(org.jruby.util.ByteList, boolean);
    descriptor: (Lorg/jruby/util/ByteList;Z)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.util.ByteList bytes
        start local 2 // boolean hard
         0: .line 1014
            aload 1 /* bytes */
            invokestatic org.jruby.RubySymbol.javaStringHashCode:(Lorg/jruby/util/ByteList;)I
            istore 3 /* hash */
        start local 3 // int hash
         1: .line 1016
            aload 0 /* this */
            aload 1 /* bytes */
            iload 3 /* hash */
            iload 2 /* hard */
            invokevirtual org.jruby.RubySymbol$SymbolTable.findSymbol:(Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         2: .line 1018
            aload 4 /* symbol */
            ifnonnull 10
         3: .line 1019
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.dup:()Lorg/jruby/util/ByteList;
            astore 1 /* bytes */
         4: .line 1020
            aload 0 /* this */
         5: .line 1021
            aload 1 /* bytes */
            invokestatic org.jruby.RubyEncoding.decodeISO:(Lorg/jruby/util/ByteList;)Ljava/lang/String;
         6: .line 1022
            aload 1 /* bytes */
         7: .line 1023
            iload 3 /* hash */
         8: .line 1024
            iload 2 /* hard */
         9: .line 1020
            invokevirtual org.jruby.RubySymbol$SymbolTable.createSymbol:(Ljava/lang/String;Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
            astore 4 /* symbol */
        10: .line 1027
      StackMap locals: int org.jruby.RubySymbol
      StackMap stack:
            aload 4 /* symbol */
            areturn
        end local 4 // org.jruby.RubySymbol symbol
        end local 3 // int hash
        end local 2 // boolean hard
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0   11     1   bytes  Lorg/jruby/util/ByteList;
            0   11     2    hard  Z
            1   11     3    hash  I
            2   11     4  symbol  Lorg/jruby/RubySymbol;
    MethodParameters:
       Name  Flags
      bytes  
      hard   

  public org.jruby.RubySymbol getSymbol(org.jruby.util.ByteList, org.jruby.RubySymbol$ObjBooleanConsumer<org.jruby.RubySymbol>, boolean);
    descriptor: (Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol$ObjBooleanConsumer;Z)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.util.ByteList bytes
        start local 2 // org.jruby.RubySymbol$ObjBooleanConsumer handler
        start local 3 // boolean hard
         0: .line 1041
            aload 1 /* bytes */
            invokestatic org.jruby.RubySymbol.javaStringHashCode:(Lorg/jruby/util/ByteList;)I
            istore 4 /* hash */
        start local 4 // int hash
         1: .line 1043
            aload 0 /* this */
            aload 1 /* bytes */
            iload 4 /* hash */
            iload 3 /* hard */
            invokevirtual org.jruby.RubySymbol$SymbolTable.findSymbol:(Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
            astore 5 /* symbol */
        start local 5 // org.jruby.RubySymbol symbol
         2: .line 1045
            aload 5 /* symbol */
            ifnonnull 5
         3: .line 1046
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.dup:()Lorg/jruby/util/ByteList;
            astore 1 /* bytes */
         4: .line 1047
            aload 0 /* this */
            aload 1 /* bytes */
            invokevirtual org.jruby.util.ByteList.toString:()Ljava/lang/String;
            aload 1 /* bytes */
            aload 2 /* handler */
            iload 4 /* hash */
            iload 3 /* hard */
            invokevirtual org.jruby.RubySymbol$SymbolTable.createSymbol:(Ljava/lang/String;Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol$ObjBooleanConsumer;IZ)Lorg/jruby/RubySymbol;
            areturn
         5: .line 1050
      StackMap locals: int org.jruby.RubySymbol
      StackMap stack:
            aload 2 /* handler */
            aload 5 /* symbol */
            iconst_0
            invokeinterface org.jruby.RubySymbol$ObjBooleanConsumer.accept:(Ljava/lang/Object;Z)V
         6: .line 1052
            aload 5 /* symbol */
            areturn
        end local 5 // org.jruby.RubySymbol symbol
        end local 4 // int hash
        end local 3 // boolean hard
        end local 2 // org.jruby.RubySymbol$ObjBooleanConsumer handler
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/RubySymbol$SymbolTable;
            0    7     1    bytes  Lorg/jruby/util/ByteList;
            0    7     2  handler  Lorg/jruby/RubySymbol$ObjBooleanConsumer<Lorg/jruby/RubySymbol;>;
            0    7     3     hard  Z
            1    7     4     hash  I
            2    7     5   symbol  Lorg/jruby/RubySymbol;
    Signature: (Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol$ObjBooleanConsumer<Lorg/jruby/RubySymbol;>;Z)Lorg/jruby/RubySymbol;
    MethodParameters:
         Name  Flags
      bytes    
      handler  
      hard     

  private org.jruby.RubySymbol findSymbol(org.jruby.util.ByteList, int, boolean);
    descriptor: (Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.util.ByteList bytes
        start local 2 // int hash
        start local 3 // boolean hard
         0: .line 1056
            aconst_null
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         1: .line 1058
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            iload 2 /* hash */
            invokestatic org.jruby.RubySymbol$SymbolTable.getEntryFromTable:([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         2: goto 8
         3: .line 1059
      StackMap locals: org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* hash */
            aload 5 /* e */
            invokestatic org.jruby.RubySymbol$SymbolTable.isSymbolMatch:(Lorg/jruby/util/ByteList;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)Z
            ifeq 7
         4: .line 1060
            iload 3 /* hard */
            ifeq 5
            aload 5 /* e */
            invokevirtual org.jruby.RubySymbol$SymbolTable$SymbolEntry.setHardReference:()V
         5: .line 1061
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 4 /* symbol */
         6: .line 1062
            goto 9
         7: .line 1058
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
      StackMap locals:
      StackMap stack:
         8: aload 5 /* e */
            ifnonnull 3
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         9: .line 1066
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            areturn
        end local 4 // org.jruby.RubySymbol symbol
        end local 3 // boolean hard
        end local 2 // int hash
        end local 1 // org.jruby.util.ByteList bytes
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0   10     1   bytes  Lorg/jruby/util/ByteList;
            0   10     2    hash  I
            0   10     3    hard  Z
            1   10     4  symbol  Lorg/jruby/RubySymbol;
            2    9     5       e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
       Name  Flags
      bytes  
      hash   
      hard   

  public org.jruby.RubySymbol fastGetSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String internedName
         0: .line 1070
            aload 0 /* this */
            aload 1 /* internedName */
            iconst_0
            invokevirtual org.jruby.RubySymbol$SymbolTable.fastGetSymbol:(Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
            areturn
        end local 1 // java.lang.String internedName
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0    1     1  internedName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      internedName  

  public org.jruby.RubySymbol fastGetSymbol(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String internedName
        start local 2 // boolean hard
         0: .line 1074
            aconst_null
            astore 3 /* symbol */
        start local 3 // org.jruby.RubySymbol symbol
         1: .line 1075
            aload 1 /* internedName */
            invokestatic org.jruby.RubySymbol.javaStringHashCode:(Ljava/lang/String;)I
            istore 4 /* hash */
        start local 4 // int hash
         2: .line 1077
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            iload 4 /* hash */
            invokestatic org.jruby.RubySymbol$SymbolTable.getEntryFromTable:([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         3: goto 9
         4: .line 1078
      StackMap locals: org.jruby.RubySymbol int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 1 /* internedName */
            iload 4 /* hash */
            aload 5 /* e */
            invokestatic org.jruby.RubySymbol$SymbolTable.isSymbolMatch:(Ljava/lang/String;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)Z
            ifeq 8
         5: .line 1079
            iload 2 /* hard */
            ifeq 6
            aload 5 /* e */
            invokevirtual org.jruby.RubySymbol$SymbolTable$SymbolEntry.setHardReference:()V
         6: .line 1080
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 3 /* symbol */
         7: .line 1081
            goto 10
         8: .line 1077
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
      StackMap locals:
      StackMap stack:
         9: aload 5 /* e */
            ifnonnull 4
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        10: .line 1085
      StackMap locals:
      StackMap stack:
            aload 3 /* symbol */
            ifnonnull 12
        11: .line 1086
            aload 0 /* this */
            aload 1 /* internedName */
            iload 2 /* hard */
            invokevirtual org.jruby.RubySymbol$SymbolTable.fastCreateSymbol:(Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
            astore 3 /* symbol */
        12: .line 1089
      StackMap locals:
      StackMap stack:
            aload 3 /* symbol */
            areturn
        end local 4 // int hash
        end local 3 // org.jruby.RubySymbol symbol
        end local 2 // boolean hard
        end local 1 // java.lang.String internedName
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0   13     1  internedName  Ljava/lang/String;
            0   13     2          hard  Z
            1   13     3        symbol  Lorg/jruby/RubySymbol;
            2   13     4          hash  I
            3   10     5             e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
              Name  Flags
      internedName  
      hard          

  private static org.jruby.RubySymbol$SymbolTable$SymbolEntry getEntryFromTable(org.jruby.RubySymbol$SymbolTable$SymbolEntry[], int);
    descriptor: ([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        start local 1 // int hash
         0: .line 1093
            aload 0 /* table */
            iload 1 /* hash */
            aload 0 /* table */
            invokestatic org.jruby.RubySymbol$SymbolTable.getIndex:(I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
            aaload
            areturn
        end local 1 // int hash
        end local 0 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0    1     1   hash  I
    MethodParameters:
       Name  Flags
      table  
      hash   

  private static boolean isSymbolMatch(java.lang.String, int, org.jruby.RubySymbol$SymbolTable$SymbolEntry);
    descriptor: (Ljava/lang/String;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.String name
        start local 1 // int hash
        start local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry entry
         0: .line 1097
            iload 1 /* hash */
            aload 2 /* entry */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            if_icmpne 1
            aload 0 /* name */
            aload 2 /* entry */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry entry
        end local 1 // int hash
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   name  Ljava/lang/String;
            0    2     1   hash  I
            0    2     2  entry  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
       Name  Flags
      name   
      hash   
      entry  

  private static boolean isSymbolMatch(org.jruby.util.ByteList, int, org.jruby.RubySymbol$SymbolTable$SymbolEntry);
    descriptor: (Lorg/jruby/util/ByteList;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.util.ByteList bytes
        start local 1 // int hash
        start local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry entry
         0: .line 1101
            iload 1 /* hash */
            aload 2 /* entry */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            if_icmpne 1
            aload 0 /* bytes */
            aload 2 /* entry */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.bytes:Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.util.ByteList.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry entry
        end local 1 // int hash
        end local 0 // org.jruby.util.ByteList bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  bytes  Lorg/jruby/util/ByteList;
            0    2     1   hash  I
            0    2     2  entry  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
       Name  Flags
      bytes  
      hash   
      entry  

  private org.jruby.RubySymbol createSymbol(java.lang.String, org.jruby.util.ByteList, int, boolean);
    descriptor: (Ljava/lang/String;Lorg/jruby/util/ByteList;IZ)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=5
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.util.ByteList value
        start local 3 // int hash
        start local 4 // boolean hard
         0: .line 1105
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.tableLock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 5 /* lock */
        start local 5 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 1107
            aload 5 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1109
            aload 0 /* this */
            invokevirtual org.jruby.RubySymbol$SymbolTable.getTableForCreate:()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 6 /* table */
        start local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         3: .line 1110
            iload 3 /* hash */
            aload 6 /* table */
            invokestatic org.jruby.RubySymbol$SymbolTable.getIndex:(I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
            istore 7 /* index */
        start local 7 // int index
         4: .line 1113
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* table */
            iload 3 /* hash */
            iload 7 /* index */
            invokevirtual org.jruby.RubySymbol$SymbolTable.lookupSymbol:(Ljava/lang/String;[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;II)Lorg/jruby/RubySymbol;
            astore 8 /* symbol */
        start local 8 // org.jruby.RubySymbol symbol
         5: .line 1115
            aload 8 /* symbol */
            ifnonnull 9
         6: .line 1116
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            astore 9 /* internedName */
        start local 9 // java.lang.String internedName
         7: .line 1117
            new org.jruby.RubySymbol
            dup
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
            aload 9 /* internedName */
            aload 2 /* value */
            invokespecial org.jruby.RubySymbol.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/util/ByteList;)V
            astore 8 /* symbol */
         8: .line 1118
            aload 0 /* this */
            aload 2 /* value */
            iload 3 /* hash */
            iload 4 /* hard */
            aload 6 /* table */
            iload 7 /* index */
            aload 8 /* symbol */
            aload 9 /* internedName */
            invokevirtual org.jruby.RubySymbol$SymbolTable.storeSymbol:(Lorg/jruby/util/ByteList;IZ[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol;Ljava/lang/String;)V
        end local 9 // java.lang.String internedName
         9: .line 1120
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String org.jruby.util.ByteList int int java.util.concurrent.locks.ReentrantLock org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int org.jruby.RubySymbol
      StackMap stack:
            aload 8 /* symbol */
            astore 11
        10: .line 1122
            aload 5 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1120
            aload 11
            areturn
        end local 8 // org.jruby.RubySymbol symbol
        end local 7 // int index
        end local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        12: .line 1121
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String org.jruby.util.ByteList int int java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 10
        13: .line 1122
            aload 5 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 1123
            aload 10
            athrow
        end local 5 // java.util.concurrent.locks.ReentrantLock lock
        end local 4 // boolean hard
        end local 3 // int hash
        end local 2 // org.jruby.util.ByteList value
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0   15     1          name  Ljava/lang/String;
            0   15     2         value  Lorg/jruby/util/ByteList;
            0   15     3          hash  I
            0   15     4          hard  Z
            1   15     5          lock  Ljava/util/concurrent/locks/ReentrantLock;
            3   12     6         table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            4   12     7         index  I
            5   12     8        symbol  Lorg/jruby/RubySymbol;
            7    9     9  internedName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    10      12  any
    MethodParameters:
       Name  Flags
      name   final
      value  final
      hash   final
      hard   

  private org.jruby.RubySymbol createSymbol(java.lang.String, org.jruby.util.ByteList, org.jruby.RubySymbol$ObjBooleanConsumer<org.jruby.RubySymbol>, int, boolean);
    descriptor: (Ljava/lang/String;Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol$ObjBooleanConsumer;IZ)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=13, args_size=6
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.util.ByteList value
        start local 3 // org.jruby.RubySymbol$ObjBooleanConsumer handler
        start local 4 // int hash
        start local 5 // boolean hard
         0: .line 1137
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.tableLock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 6 /* lock */
        start local 6 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 1139
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1141
            aload 0 /* this */
            invokevirtual org.jruby.RubySymbol$SymbolTable.getTableForCreate:()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 7 /* table */
        start local 7 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         3: .line 1142
            iload 4 /* hash */
            aload 7 /* table */
            invokestatic org.jruby.RubySymbol$SymbolTable.getIndex:(I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
            istore 8 /* index */
        start local 8 // int index
         4: .line 1145
            aload 0 /* this */
            aload 1 /* name */
            aload 7 /* table */
            iload 4 /* hash */
            iload 8 /* index */
            invokevirtual org.jruby.RubySymbol$SymbolTable.lookupSymbol:(Ljava/lang/String;[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;II)Lorg/jruby/RubySymbol;
            astore 9 /* symbol */
        start local 9 // org.jruby.RubySymbol symbol
         5: .line 1147
            aload 9 /* symbol */
            ifnonnull 11
         6: .line 1148
            aload 1 /* name */
            invokevirtual java.lang.String.intern:()Ljava/lang/String;
            astore 10 /* internedName */
        start local 10 // java.lang.String internedName
         7: .line 1149
            new org.jruby.RubySymbol
            dup
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
            aload 10 /* internedName */
            aload 2 /* value */
            invokespecial org.jruby.RubySymbol.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;Lorg/jruby/util/ByteList;)V
            astore 9 /* symbol */
         8: .line 1152
            aload 3 /* handler */
            aload 9 /* symbol */
            iconst_1
            invokeinterface org.jruby.RubySymbol$ObjBooleanConsumer.accept:(Ljava/lang/Object;Z)V
         9: .line 1154
            aload 0 /* this */
            aload 2 /* value */
            iload 4 /* hash */
            iload 5 /* hard */
            aload 7 /* table */
            iload 8 /* index */
            aload 9 /* symbol */
            aload 10 /* internedName */
            invokevirtual org.jruby.RubySymbol$SymbolTable.storeSymbol:(Lorg/jruby/util/ByteList;IZ[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol;Ljava/lang/String;)V
        end local 10 // java.lang.String internedName
        10: .line 1155
            goto 12
        11: .line 1156
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String org.jruby.util.ByteList org.jruby.RubySymbol$ObjBooleanConsumer int int java.util.concurrent.locks.ReentrantLock org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int org.jruby.RubySymbol
      StackMap stack:
            aload 3 /* handler */
            aload 9 /* symbol */
            iconst_0
            invokeinterface org.jruby.RubySymbol$ObjBooleanConsumer.accept:(Ljava/lang/Object;Z)V
        12: .line 1158
      StackMap locals:
      StackMap stack:
            aload 9 /* symbol */
            astore 12
        13: .line 1160
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 1158
            aload 12
            areturn
        end local 9 // org.jruby.RubySymbol symbol
        end local 8 // int index
        end local 7 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        15: .line 1159
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String org.jruby.util.ByteList org.jruby.RubySymbol$ObjBooleanConsumer int int java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 11
        16: .line 1160
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 1161
            aload 11
            athrow
        end local 6 // java.util.concurrent.locks.ReentrantLock lock
        end local 5 // boolean hard
        end local 4 // int hash
        end local 3 // org.jruby.RubySymbol$ObjBooleanConsumer handler
        end local 2 // org.jruby.util.ByteList value
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0   18     1          name  Ljava/lang/String;
            0   18     2         value  Lorg/jruby/util/ByteList;
            0   18     3       handler  Lorg/jruby/RubySymbol$ObjBooleanConsumer<Lorg/jruby/RubySymbol;>;
            0   18     4          hash  I
            0   18     5          hard  Z
            1   18     6          lock  Ljava/util/concurrent/locks/ReentrantLock;
            3   15     7         table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            4   15     8         index  I
            5   15     9        symbol  Lorg/jruby/RubySymbol;
            7   10    10  internedName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    13      15  any
    Signature: (Ljava/lang/String;Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol$ObjBooleanConsumer<Lorg/jruby/RubySymbol;>;IZ)Lorg/jruby/RubySymbol;
    MethodParameters:
         Name  Flags
      name     final
      value    final
      handler  
      hash     final
      hard     

  private void storeSymbol(org.jruby.util.ByteList, int, boolean, org.jruby.RubySymbol$SymbolTable$SymbolEntry[], int, org.jruby.RubySymbol, java.lang.String);
    descriptor: (Lorg/jruby/util/ByteList;IZ[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=8, args_size=8
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.util.ByteList value
        start local 2 // int hash
        start local 3 // boolean hard
        start local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        start local 5 // int index
        start local 6 // org.jruby.RubySymbol symbol
        start local 7 // java.lang.String internedName
         0: .line 1165
            aload 4 /* table */
            iload 5 /* index */
            new org.jruby.RubySymbol$SymbolTable$SymbolEntry
            dup
            iload 2 /* hash */
            aload 7 /* internedName */
            aload 1 /* value */
            aload 6 /* symbol */
            aload 4 /* table */
            iload 5 /* index */
            aaload
            iload 3 /* hard */
            invokespecial org.jruby.RubySymbol$SymbolTable$SymbolEntry.<init>:(ILjava/lang/String;Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol;Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;Z)V
            aastore
         1: .line 1166
            aload 0 /* this */
            dup
            getfield org.jruby.RubySymbol$SymbolTable.size:I
            iconst_1
            iadd
            putfield org.jruby.RubySymbol$SymbolTable.size:I
         2: .line 1168
            aload 0 /* this */
            aload 4 /* table */
            putfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
         3: .line 1169
            return
        end local 7 // java.lang.String internedName
        end local 6 // org.jruby.RubySymbol symbol
        end local 5 // int index
        end local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 3 // boolean hard
        end local 2 // int hash
        end local 1 // org.jruby.util.ByteList value
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0    4     1         value  Lorg/jruby/util/ByteList;
            0    4     2          hash  I
            0    4     3          hard  Z
            0    4     4         table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0    4     5         index  I
            0    4     6        symbol  Lorg/jruby/RubySymbol;
            0    4     7  internedName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      value         
      hash          
      hard          
      table         
      index         
      symbol        
      internedName  

  private org.jruby.RubySymbol fastCreateSymbol(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String internedName
        start local 2 // boolean hard
         0: .line 1173
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.tableLock:Ljava/util/concurrent/locks/ReentrantLock;
            dup
            astore 3 /* lock */
        start local 3 // java.util.concurrent.locks.ReentrantLock lock
         1: invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 1175
            aload 0 /* this */
            invokevirtual org.jruby.RubySymbol$SymbolTable.getTableForCreate:()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 4 /* table */
        start local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         3: .line 1176
            aload 1 /* internedName */
            invokevirtual java.lang.String.hashCode:()I
            istore 5 /* hash */
        start local 5 // int hash
         4: .line 1177
            iload 5 /* hash */
            aload 4 /* table */
            invokestatic org.jruby.RubySymbol$SymbolTable.getIndex:(I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
            istore 6 /* index */
        start local 6 // int index
         5: .line 1180
            aload 0 /* this */
            aload 1 /* internedName */
            aload 4 /* table */
            iload 6 /* index */
            invokevirtual org.jruby.RubySymbol$SymbolTable.lookupSymbolByString:(Ljava/lang/String;[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol;
            astore 7 /* symbol */
        start local 7 // org.jruby.RubySymbol symbol
         6: .line 1182
            aload 7 /* symbol */
            ifnonnull 9
         7: .line 1183
            new org.jruby.RubySymbol
            dup
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
            aload 1 /* internedName */
            invokespecial org.jruby.RubySymbol.<init>:(Lorg/jruby/Ruby;Ljava/lang/String;)V
            astore 7 /* symbol */
         8: .line 1184
            aload 0 /* this */
            aload 7 /* symbol */
            invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
            iload 5 /* hash */
            iload 2 /* hard */
            aload 4 /* table */
            iload 6 /* index */
            aload 7 /* symbol */
            aload 1 /* internedName */
            invokevirtual org.jruby.RubySymbol$SymbolTable.storeSymbol:(Lorg/jruby/util/ByteList;IZ[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol;Ljava/lang/String;)V
         9: .line 1186
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String int java.util.concurrent.locks.ReentrantLock org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol
      StackMap stack:
            aload 7 /* symbol */
            astore 9
        10: .line 1188
            aload 3 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1186
            aload 9
            areturn
        end local 7 // org.jruby.RubySymbol symbol
        end local 6 // int index
        end local 5 // int hash
        end local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        12: .line 1187
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String int java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 8
        13: .line 1188
            aload 3 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 1189
            aload 8
            athrow
        end local 3 // java.util.concurrent.locks.ReentrantLock lock
        end local 2 // boolean hard
        end local 1 // java.lang.String internedName
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0   15     1  internedName  Ljava/lang/String;
            0   15     2          hard  Z
            1   15     3          lock  Ljava/util/concurrent/locks/ReentrantLock;
            3   12     4         table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            4   12     5          hash  I
            5   12     6         index  I
            6   12     7        symbol  Lorg/jruby/RubySymbol;
      Exception table:
        from    to  target  type
           2    10      12  any
    MethodParameters:
              Name  Flags
      internedName  final
      hard          

  private static int getIndex(int, org.jruby.RubySymbol$SymbolTable$SymbolEntry[]);
    descriptor: (I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int hash
        start local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         0: .line 1193
            iload 0 /* hash */
            aload 1 /* table */
            arraylength
            iconst_1
            isub
            iand
            ireturn
        end local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 0 // int hash
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   hash  I
            0    1     1  table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
       Name  Flags
      hash   
      table  

  private org.jruby.RubySymbol$SymbolTable$SymbolEntry[] getTableForCreate();
    descriptor: ()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.RubySymbol$SymbolTable this
         0: .line 1197
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.size:I
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.threshold:I
            if_icmple 1
            aload 0 /* this */
            invokevirtual org.jruby.RubySymbol$SymbolTable.rehash:()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
      StackMap locals:
      StackMap stack: org.jruby.RubySymbol$SymbolTable$SymbolEntry[]
         2: areturn
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/RubySymbol$SymbolTable;

  private org.jruby.RubySymbol lookupSymbol(java.lang.String, org.jruby.RubySymbol$SymbolTable$SymbolEntry[], int, int);
    descriptor: (Ljava/lang/String;[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;II)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
        start local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        start local 3 // int hash
        start local 4 // int index
         0: .line 1201
            aconst_null
            astore 5 /* symbol */
        start local 5 // org.jruby.RubySymbol symbol
         1: .line 1202
            aconst_null
            astore 6 /* last */
        start local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
         2: aload 2 /* table */
            iload 4 /* index */
            aaload
            astore 7 /* curr */
        start local 7 // org.jruby.RubySymbol$SymbolTable$SymbolEntry curr
         3: goto 13
         4: .line 1203
      StackMap locals: org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 8 /* localSymbol */
        start local 8 // org.jruby.RubySymbol localSymbol
         5: .line 1205
            aload 8 /* localSymbol */
            ifnonnull 8
         6: .line 1206
            aload 0 /* this */
            aload 2 /* table */
            iload 4 /* index */
            aload 6 /* last */
            aload 7 /* curr */
            invokevirtual org.jruby.RubySymbol$SymbolTable.removeDeadEntry:([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)V
         7: .line 1209
            iload 3 /* hash */
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            if_icmpne 12
            aload 1 /* name */
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 12
         8: .line 1213
      StackMap locals: org.jruby.RubySymbol
      StackMap stack:
            aload 7 /* curr */
            astore 6 /* last */
         9: .line 1216
            iload 3 /* hash */
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            if_icmpne 12
            aload 1 /* name */
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 1217
            aload 8 /* localSymbol */
            astore 5 /* symbol */
        11: .line 1218
            goto 14
        end local 8 // org.jruby.RubySymbol localSymbol
        12: .line 1202
      StackMap locals:
      StackMap stack:
            aload 7 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 7 /* curr */
      StackMap locals:
      StackMap stack:
        13: aload 7 /* curr */
            ifnonnull 4
        end local 7 // org.jruby.RubySymbol$SymbolTable$SymbolEntry curr
        end local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        14: .line 1221
      StackMap locals:
      StackMap stack:
            aload 5 /* symbol */
            areturn
        end local 5 // org.jruby.RubySymbol symbol
        end local 4 // int index
        end local 3 // int hash
        end local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/jruby/RubySymbol$SymbolTable;
            0   15     1         name  Ljava/lang/String;
            0   15     2        table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0   15     3         hash  I
            0   15     4        index  I
            1   15     5       symbol  Lorg/jruby/RubySymbol;
            2   14     6         last  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            3   14     7         curr  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            5   12     8  localSymbol  Lorg/jruby/RubySymbol;
    MethodParameters:
       Name  Flags
      name   
      table  
      hash   
      index  

  private org.jruby.RubySymbol lookupSymbolByString(java.lang.String, org.jruby.RubySymbol$SymbolTable$SymbolEntry[], int);
    descriptor: (Ljava/lang/String;[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;I)Lorg/jruby/RubySymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String internedName
        start local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        start local 3 // int index
         0: .line 1225
            aconst_null
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         1: .line 1226
            aconst_null
            astore 5 /* last */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
         2: aload 2 /* table */
            iload 3 /* index */
            aaload
            astore 6 /* curr */
        start local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry curr
         3: goto 13
         4: .line 1227
      StackMap locals: org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 6 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 7 /* localSymbol */
        start local 7 // org.jruby.RubySymbol localSymbol
         5: .line 1229
            aload 7 /* localSymbol */
            ifnonnull 8
         6: .line 1230
            aload 0 /* this */
            aload 2 /* table */
            iload 3 /* index */
            aload 5 /* last */
            aload 6 /* curr */
            invokevirtual org.jruby.RubySymbol$SymbolTable.removeDeadEntry:([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)V
         7: .line 1233
            aload 1 /* internedName */
            aload 6 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            if_acmpeq 8
            goto 12
         8: .line 1237
      StackMap locals: org.jruby.RubySymbol
      StackMap stack:
            aload 6 /* curr */
            astore 5 /* last */
         9: .line 1240
            aload 1 /* internedName */
            aload 6 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            if_acmpne 12
        10: .line 1241
            aload 7 /* localSymbol */
            astore 4 /* symbol */
        11: .line 1242
            goto 14
        end local 7 // org.jruby.RubySymbol localSymbol
        12: .line 1226
      StackMap locals:
      StackMap stack:
            aload 6 /* curr */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 6 /* curr */
      StackMap locals:
      StackMap stack:
        13: aload 6 /* curr */
            ifnonnull 4
        end local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry curr
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        14: .line 1245
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            areturn
        end local 4 // org.jruby.RubySymbol symbol
        end local 3 // int index
        end local 2 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 1 // java.lang.String internedName
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/jruby/RubySymbol$SymbolTable;
            0   15     1  internedName  Ljava/lang/String;
            0   15     2         table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0   15     3         index  I
            1   15     4        symbol  Lorg/jruby/RubySymbol;
            2   14     5          last  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            3   14     6          curr  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            5   12     7   localSymbol  Lorg/jruby/RubySymbol;
    MethodParameters:
              Name  Flags
      internedName  
      table         
      index         

  private void removeDeadEntry(org.jruby.RubySymbol$SymbolTable$SymbolEntry[], int, org.jruby.RubySymbol$SymbolTable$SymbolEntry, org.jruby.RubySymbol$SymbolTable$SymbolEntry);
    descriptor: ([Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;ILorg/jruby/RubySymbol$SymbolTable$SymbolEntry;Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        start local 2 // int index
        start local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        start local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         0: .line 1249
            aload 3 /* last */
            ifnonnull 3
         1: .line 1250
            aload 1 /* table */
            iload 2 /* index */
            aload 4 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            aastore
         2: .line 1251
            goto 4
         3: .line 1252
      StackMap locals:
      StackMap stack:
            aload 3 /* last */
            aload 4 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            putfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
         4: .line 1255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.jruby.RubySymbol$SymbolTable.size:I
            iconst_1
            isub
            putfield org.jruby.RubySymbol$SymbolTable.size:I
         5: .line 1256
            return
        end local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        end local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        end local 2 // int index
        end local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/jruby/RubySymbol$SymbolTable;
            0    6     1  table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0    6     2  index  I
            0    6     3   last  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            0    6     4      e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
       Name  Flags
      table  
      index  
      last   
      e      

  public org.jruby.RubySymbol lookup(long);
    descriptor: (J)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // long id
         0: .line 1259
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 3 /* table */
        start local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         1: .line 1262
            aload 3 /* table */
            arraylength
            istore 5 /* i */
        start local 5 // int i
         2: goto 9
         3: .line 1263
      StackMap locals: org.jruby.RubySymbol$SymbolTable long org.jruby.RubySymbol$SymbolTable$SymbolEntry[] top int
      StackMap stack:
            aload 3 /* table */
            iload 5 /* i */
            aaload
            astore 6 /* e */
        start local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         4: goto 8
         5: .line 1264
      StackMap locals: org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 6 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         6: .line 1265
            aload 4 /* symbol */
            ifnull 7
            lload 1 /* id */
            aload 4 /* symbol */
            getfield org.jruby.RubySymbol.id:I
            i2l
            lcmp
            ifne 7
            aload 4 /* symbol */
            areturn
         7: .line 1263
      StackMap locals: org.jruby.RubySymbol$SymbolTable long org.jruby.RubySymbol$SymbolTable$SymbolEntry[] org.jruby.RubySymbol int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 6 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 6 /* e */
        end local 4 // org.jruby.RubySymbol symbol
      StackMap locals: org.jruby.RubySymbol$SymbolTable long org.jruby.RubySymbol$SymbolTable$SymbolEntry[] top int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
         8: aload 6 /* e */
            ifnonnull 5
        end local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         9: .line 1262
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 3
        end local 5 // int i
        10: .line 1269
            aconst_null
            areturn
        end local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 1 // long id
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0   11     1      id  J
            1   11     3   table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            6    8     4  symbol  Lorg/jruby/RubySymbol;
            2   10     5       i  I
            4    9     6       e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    MethodParameters:
      Name  Flags
      id    

  public org.jruby.RubyArray all_symbols();
    descriptor: ()Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.jruby.RubySymbol$SymbolTable this
         0: .line 1273
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 1 /* table */
        start local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         1: .line 1274
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.size:I
            invokevirtual org.jruby.Ruby.newArray:(I)Lorg/jruby/RubyArray;
            astore 2 /* array */
        start local 2 // org.jruby.RubyArray array
         2: .line 1277
            aload 1 /* table */
            arraylength
            istore 4 /* i */
        start local 4 // int i
         3: goto 10
         4: .line 1278
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] org.jruby.RubyArray top int
      StackMap stack:
            aload 1 /* table */
            iload 4 /* i */
            aaload
            astore 5 /* e */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         5: goto 9
         6: .line 1279
      StackMap locals: org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 3 /* symbol */
        start local 3 // org.jruby.RubySymbol symbol
         7: .line 1280
            aload 3 /* symbol */
            ifnull 8
            aload 2 /* array */
            aload 3 /* symbol */
            invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            pop
         8: .line 1278
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] org.jruby.RubyArray org.jruby.RubySymbol int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
        end local 3 // org.jruby.RubySymbol symbol
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] org.jruby.RubyArray top int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
         9: aload 5 /* e */
            ifnonnull 6
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        10: .line 1277
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
            iload 4 /* i */
            ifge 4
        end local 4 // int i
        11: .line 1283
            aload 2 /* array */
            areturn
        end local 2 // org.jruby.RubyArray array
        end local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            1   12     1   table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            2   12     2   array  Lorg/jruby/RubyArray;
            7    9     3  symbol  Lorg/jruby/RubySymbol;
            3   11     4       i  I
            5   10     5       e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubySymbol$SymbolTable this
         0: .line 1287
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.size:I
            ireturn
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubySymbol$SymbolTable;

  private org.jruby.RubySymbol$SymbolTable$SymbolEntry[] rehash();
    descriptor: ()[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=15, args_size=1
        start local 0 // org.jruby.RubySymbol$SymbolTable this
         0: .line 1291
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 1 /* oldTable */
        start local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] oldTable
         1: .line 1292
            aload 1 /* oldTable */
            arraylength
            istore 2 /* oldCapacity */
        start local 2 // int oldCapacity
         2: .line 1294
            iload 2 /* oldCapacity */
            ldc 65536
            if_icmplt 3
            aload 1 /* oldTable */
            areturn
         3: .line 1296
      StackMap locals: org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int
      StackMap stack:
            iload 2 /* oldCapacity */
            iconst_1
            ishl
            istore 3 /* newCapacity */
        start local 3 // int newCapacity
         4: .line 1297
            iload 3 /* newCapacity */
            anewarray org.jruby.RubySymbol$SymbolTable$SymbolEntry
            astore 4 /* newTable */
        start local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] newTable
         5: .line 1298
            aload 0 /* this */
            iload 3 /* newCapacity */
            i2f
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.loadFactor:F
            fmul
            f2i
            putfield org.jruby.RubySymbol$SymbolTable.threshold:I
         6: .line 1299
            iload 3 /* newCapacity */
            iconst_1
            isub
            istore 5 /* sizeMask */
        start local 5 // int sizeMask
         7: .line 1301
            iload 2 /* oldCapacity */
            istore 7 /* i */
        start local 7 // int i
         8: goto 37
         9: .line 1304
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int top int
      StackMap stack:
            aload 1 /* oldTable */
            iload 7 /* i */
            aaload
            astore 6 /* e */
        start local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        10: .line 1305
            aload 6 /* e */
            ifnonnull 11
            goto 37
        11: .line 1307
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int org.jruby.RubySymbol$SymbolTable$SymbolEntry int
      StackMap stack:
            aload 6 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 8 /* next */
        start local 8 // org.jruby.RubySymbol$SymbolTable$SymbolEntry next
        12: .line 1308
            aload 6 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            iload 5 /* sizeMask */
            iand
            istore 9 /* idx */
        start local 9 // int idx
        13: .line 1311
            aload 8 /* next */
            ifnonnull 16
        14: .line 1312
            aload 4 /* newTable */
            iload 9 /* idx */
            aload 6 /* e */
            aastore
        15: .line 1313
            goto 37
        16: .line 1315
      StackMap locals: org.jruby.RubySymbol$SymbolTable$SymbolEntry int
      StackMap stack:
            aload 6 /* e */
            astore 10 /* lastRun */
        start local 10 // org.jruby.RubySymbol$SymbolTable$SymbolEntry lastRun
        17: .line 1316
            iload 9 /* idx */
            istore 11 /* lastIdx */
        start local 11 // int lastIdx
        18: .line 1317
            aload 8 /* next */
            astore 12 /* last */
        start local 12 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        19: .line 1318
            goto 25
        20: .line 1320
      StackMap locals: org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            aload 12 /* last */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            iload 5 /* sizeMask */
            iand
            istore 13 /* k */
        start local 13 // int k
        21: .line 1321
            iload 13 /* k */
            iload 11 /* lastIdx */
            if_icmpeq 24
        22: .line 1322
            iload 13 /* k */
            istore 11 /* lastIdx */
        23: .line 1323
            aload 12 /* last */
            astore 10 /* lastRun */
        end local 13 // int k
        24: .line 1319
      StackMap locals:
      StackMap stack:
            aload 12 /* last */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 12 /* last */
        25: .line 1318
      StackMap locals:
      StackMap stack:
            aload 12 /* last */
            ifnonnull 20
        end local 12 // org.jruby.RubySymbol$SymbolTable$SymbolEntry last
        26: .line 1326
            aload 4 /* newTable */
            iload 11 /* lastIdx */
            aload 10 /* lastRun */
            aastore
        27: .line 1329
            aload 6 /* e */
            astore 12 /* p */
        start local 12 // org.jruby.RubySymbol$SymbolTable$SymbolEntry p
        28: goto 36
        29: .line 1330
      StackMap locals:
      StackMap stack:
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            iload 5 /* sizeMask */
            iand
            istore 13 /* k */
        start local 13 // int k
        30: .line 1331
            aload 4 /* newTable */
            iload 13 /* k */
            aaload
            astore 14 /* n */
        start local 14 // org.jruby.RubySymbol$SymbolTable$SymbolEntry n
        31: .line 1332
            aload 4 /* newTable */
            iload 13 /* k */
        32: new org.jruby.RubySymbol$SymbolTable$SymbolEntry
            dup
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.bytes:Lorg/jruby/util/ByteList;
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            aload 14 /* n */
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hardReference:Lorg/jruby/RubySymbol;
            ifnull 33
            iconst_1
            goto 34
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack: org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int new 32 new 32 int java.lang.String org.jruby.util.ByteList org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry
        33: iconst_0
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry int org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack: org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int new 32 new 32 int java.lang.String org.jruby.util.ByteList org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry int
        34: invokespecial org.jruby.RubySymbol$SymbolTable$SymbolEntry.<init>:(ILjava/lang/String;Lorg/jruby/util/ByteList;Lorg/jruby/RubySymbol;Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;Z)V
            aastore
        end local 14 // org.jruby.RubySymbol$SymbolTable$SymbolEntry n
        end local 13 // int k
        35: .line 1329
            aload 12 /* p */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 12 /* p */
      StackMap locals:
      StackMap stack:
        36: aload 12 /* p */
            aload 10 /* lastRun */
            if_acmpne 29
        end local 12 // org.jruby.RubySymbol$SymbolTable$SymbolEntry p
        end local 11 // int lastIdx
        end local 10 // org.jruby.RubySymbol$SymbolTable$SymbolEntry lastRun
        end local 9 // int idx
        end local 8 // org.jruby.RubySymbol$SymbolTable$SymbolEntry next
        end local 6 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        37: .line 1301
      StackMap locals: org.jruby.RubySymbol$SymbolTable org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] int top int
      StackMap stack:
            iinc 7 /* i */ -1
            iload 7 /* i */
            ifge 9
        end local 7 // int i
        38: .line 1336
            aload 0 /* this */
            aload 4 /* newTable */
            putfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
        39: .line 1337
            aload 4 /* newTable */
            areturn
        end local 5 // int sizeMask
        end local 4 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] newTable
        end local 3 // int newCapacity
        end local 2 // int oldCapacity
        end local 1 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] oldTable
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   40     0         this  Lorg/jruby/RubySymbol$SymbolTable;
            1   40     1     oldTable  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            2   40     2  oldCapacity  I
            4   40     3  newCapacity  I
            5   40     4     newTable  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            7   40     5     sizeMask  I
           10   37     6            e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            8   38     7            i  I
           12   37     8         next  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
           13   37     9          idx  I
           17   37    10      lastRun  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
           18   37    11      lastIdx  I
           19   26    12         last  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
           21   24    13            k  I
           28   37    12            p  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
           30   35    13            k  I
           31   35    14            n  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;

  public org.jruby.RubySymbol lookup(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jruby/RubySymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // java.lang.String name
         0: .line 1343
            aload 1 /* name */
            invokevirtual java.lang.String.hashCode:()I
            istore 2 /* hash */
        start local 2 // int hash
         1: .line 1344
            aload 0 /* this */
            getfield org.jruby.RubySymbol$SymbolTable.symbolTable:[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 3 /* table */
        start local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
         2: .line 1345
            aconst_null
            astore 4 /* symbol */
        start local 4 // org.jruby.RubySymbol symbol
         3: .line 1347
            aload 3 /* table */
            iload 2 /* hash */
            aload 3 /* table */
            invokestatic org.jruby.RubySymbol$SymbolTable.getIndex:(I[Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;)I
            aaload
            astore 5 /* e */
        start local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
         4: .line 1348
            goto 9
         5: .line 1349
      StackMap locals: org.jruby.RubySymbol$SymbolTable java.lang.String int org.jruby.RubySymbol$SymbolTable$SymbolEntry[] org.jruby.RubySymbol org.jruby.RubySymbol$SymbolTable$SymbolEntry
      StackMap stack:
            iload 2 /* hash */
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.hash:I
            if_icmpne 8
            aload 1 /* name */
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 1350
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.symbol:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.jruby.RubySymbol
            astore 4 /* symbol */
         7: .line 1351
            aload 4 /* symbol */
            ifnull 8
            goto 10
         8: .line 1353
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            getfield org.jruby.RubySymbol$SymbolTable$SymbolEntry.next:Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            astore 5 /* e */
         9: .line 1348
      StackMap locals:
      StackMap stack:
            aload 5 /* e */
            ifnonnull 5
        10: .line 1356
      StackMap locals:
      StackMap stack:
            aload 4 /* symbol */
            areturn
        end local 5 // org.jruby.RubySymbol$SymbolTable$SymbolEntry e
        end local 4 // org.jruby.RubySymbol symbol
        end local 3 // org.jruby.RubySymbol$SymbolTable$SymbolEntry[] table
        end local 2 // int hash
        end local 1 // java.lang.String name
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0   11     1    name  Ljava/lang/String;
            1   11     2    hash  I
            2   11     3   table  [Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
            3   11     4  symbol  Lorg/jruby/RubySymbol;
            4   11     5       e  Lorg/jruby/RubySymbol$SymbolTable$SymbolEntry;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      name  

  public void store(org.jruby.RubySymbol);
    descriptor: (Lorg/jruby/RubySymbol;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubySymbol$SymbolTable this
        start local 1 // org.jruby.RubySymbol symbol
         0: .line 1363
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // org.jruby.RubySymbol symbol
        end local 0 // org.jruby.RubySymbol$SymbolTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/jruby/RubySymbol$SymbolTable;
            0    1     1  symbol  Lorg/jruby/RubySymbol;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      symbol  
}
SourceFile: "RubySymbol.java"
NestHost: org.jruby.RubySymbol
InnerClasses:
  public abstract ObjBooleanConsumer = org.jruby.RubySymbol$ObjBooleanConsumer of org.jruby.RubySymbol
  public final SymbolTable = org.jruby.RubySymbol$SymbolTable of org.jruby.RubySymbol
  final SymbolEntry = org.jruby.RubySymbol$SymbolTable$SymbolEntry of org.jruby.RubySymbol$SymbolTable