public class com.sun.tools.javac.util.SharedNameTable extends com.sun.tools.javac.util.Name$Table
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.util.SharedNameTable
  super_class: com.sun.tools.javac.util.Name$Table
{
  private static com.sun.tools.javac.util.List<java.lang.ref.SoftReference<com.sun.tools.javac.util.SharedNameTable>> freelist;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Lcom/sun/tools/javac/util/List<Ljava/lang/ref/SoftReference<Lcom/sun/tools/javac/util/SharedNameTable;>;>;

  private com.sun.tools.javac.util.SharedNameTable$NameImpl[] hashes;
    descriptor: [Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
    flags: (0x0002) ACC_PRIVATE

  public byte[] bytes;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 44
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized com.sun.tools.javac.util.SharedNameTable create(com.sun.tools.javac.util.Names);
    descriptor: (Lcom/sun/tools/javac/util/Names;)Lcom/sun/tools/javac/util/SharedNameTable;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.Names names
         0: .line 47
            goto 5
         1: .line 48
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast java.lang.ref.SoftReference
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.SharedNameTable
            astore 1 /* t */
        start local 1 // com.sun.tools.javac.util.SharedNameTable t
         2: .line 49
            getstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
         3: .line 50
            aload 1 /* t */
            ifnull 5
         4: .line 51
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.util.SharedNameTable t
         5: .line 47
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 1
         6: .line 54
            new com.sun.tools.javac.util.SharedNameTable
            dup
            aload 0 /* names */
            invokespecial com.sun.tools.javac.util.SharedNameTable.<init>:(Lcom/sun/tools/javac/util/Names;)V
            areturn
        end local 0 // com.sun.tools.javac.util.Names names
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  names  Lcom/sun/tools/javac/util/Names;
            2    5     1      t  Lcom/sun/tools/javac/util/SharedNameTable;
    MethodParameters:
       Name  Flags
      names  

  private static synchronized void dispose(com.sun.tools.javac.util.SharedNameTable);
    descriptor: (Lcom/sun/tools/javac/util/SharedNameTable;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.util.SharedNameTable t
         0: .line 58
            getstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
            new java.lang.ref.SoftReference
            dup
            aload 0 /* t */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putstatic com.sun.tools.javac.util.SharedNameTable.freelist:Lcom/sun/tools/javac/util/List;
         1: .line 59
            return
        end local 0 // com.sun.tools.javac.util.SharedNameTable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Lcom/sun/tools/javac/util/SharedNameTable;
    MethodParameters:
      Name  Flags
      t     

  public void <init>(com.sun.tools.javac.util.Names, int, int);
    descriptor: (Lcom/sun/tools/javac/util/Names;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.util.SharedNameTable this
        start local 1 // com.sun.tools.javac.util.Names names
        start local 2 // int hashSize
        start local 3 // int nameSize
         0: .line 84
            aload 0 /* this */
            aload 1 /* names */
            invokespecial com.sun.tools.javac.util.Name$Table.<init>:(Lcom/sun/tools/javac/util/Names;)V
         1: .line 75
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.util.SharedNameTable.nc:I
         2: .line 85
            aload 0 /* this */
            iload 2 /* hashSize */
            iconst_1
            isub
            putfield com.sun.tools.javac.util.SharedNameTable.hashMask:I
         3: .line 86
            aload 0 /* this */
            iload 2 /* hashSize */
            anewarray com.sun.tools.javac.util.SharedNameTable$NameImpl
            putfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
         4: .line 87
            aload 0 /* this */
            iload 3 /* nameSize */
            newarray 8
            putfield com.sun.tools.javac.util.SharedNameTable.bytes:[B
         5: .line 89
            return
        end local 3 // int nameSize
        end local 2 // int hashSize
        end local 1 // com.sun.tools.javac.util.Names names
        end local 0 // com.sun.tools.javac.util.SharedNameTable this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/tools/javac/util/SharedNameTable;
            0    6     1     names  Lcom/sun/tools/javac/util/Names;
            0    6     2  hashSize  I
            0    6     3  nameSize  I
    MethodParameters:
          Name  Flags
      names     
      hashSize  
      nameSize  

  public void <init>(com.sun.tools.javac.util.Names);
    descriptor: (Lcom/sun/tools/javac/util/Names;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.SharedNameTable this
        start local 1 // com.sun.tools.javac.util.Names names
         0: .line 92
            aload 0 /* this */
            aload 1 /* names */
            ldc 32768
            ldc 131072
            invokespecial com.sun.tools.javac.util.SharedNameTable.<init>:(Lcom/sun/tools/javac/util/Names;II)V
         1: .line 93
            return
        end local 1 // com.sun.tools.javac.util.Names names
        end local 0 // com.sun.tools.javac.util.SharedNameTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/util/SharedNameTable;
            0    2     1  names  Lcom/sun/tools/javac/util/Names;
    MethodParameters:
       Name  Flags
      names  

  public com.sun.tools.javac.util.Name fromChars(char[], int, int);
    descriptor: ([CII)Lcom/sun/tools/javac/util/Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.tools.javac.util.SharedNameTable this
        start local 1 // char[] cs
        start local 2 // int start
        start local 3 // int len
         0: .line 97
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.nc:I
            istore 4 /* nc */
        start local 4 // int nc
         1: .line 98
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.bytes:[B
            iload 4 /* nc */
            iload 3 /* len */
            iconst_3
            imul
            iadd
            invokestatic com.sun.tools.javac.util.ArrayUtils.ensureCapacity:([BI)[B
            dup_x1
            putfield com.sun.tools.javac.util.SharedNameTable.bytes:[B
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         2: .line 99
            aload 1 /* cs */
            iload 2 /* start */
            aload 5 /* bytes */
            iload 4 /* nc */
            iload 3 /* len */
            invokestatic com.sun.tools.javac.util.Convert.chars2utf:([CI[BII)I
            iload 4 /* nc */
            isub
            istore 6 /* nbytes */
        start local 6 // int nbytes
         3: .line 100
            aload 5 /* bytes */
            iload 4 /* nc */
            iload 6 /* nbytes */
            invokestatic com.sun.tools.javac.util.SharedNameTable.hashValue:([BII)I
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashMask:I
            iand
            istore 7 /* h */
        start local 7 // int h
         4: .line 101
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 7 /* h */
            aaload
            astore 8 /* n */
        start local 8 // com.sun.tools.javac.util.SharedNameTable$NameImpl n
         5: .line 102
            goto 7
         6: .line 105
      StackMap locals: com.sun.tools.javac.util.SharedNameTable char[] int int int byte[] int int com.sun.tools.javac.util.SharedNameTable$NameImpl
      StackMap stack:
            aload 8 /* n */
            getfield com.sun.tools.javac.util.SharedNameTable$NameImpl.next:Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            astore 8 /* n */
         7: .line 102
      StackMap locals:
      StackMap stack:
            aload 8 /* n */
            ifnull 10
         8: .line 103
            aload 8 /* n */
            invokevirtual com.sun.tools.javac.util.SharedNameTable$NameImpl.getByteLength:()I
            iload 6 /* nbytes */
            if_icmpne 6
         9: .line 104
            aload 5 /* bytes */
            aload 8 /* n */
            getfield com.sun.tools.javac.util.SharedNameTable$NameImpl.index:I
            aload 5 /* bytes */
            iload 4 /* nc */
            iload 6 /* nbytes */
            invokestatic com.sun.tools.javac.util.SharedNameTable.equals:([BI[BII)Z
            ifeq 6
        10: .line 107
      StackMap locals:
      StackMap stack:
            aload 8 /* n */
            ifnonnull 19
        11: .line 108
            new com.sun.tools.javac.util.SharedNameTable$NameImpl
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.util.SharedNameTable$NameImpl.<init>:(Lcom/sun/tools/javac/util/SharedNameTable;)V
            astore 8 /* n */
        12: .line 109
            aload 8 /* n */
            iload 4 /* nc */
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.index:I
        13: .line 110
            aload 8 /* n */
            iload 6 /* nbytes */
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.length:I
        14: .line 111
            aload 8 /* n */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 7 /* h */
            aaload
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.next:Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
        15: .line 112
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 7 /* h */
            aload 8 /* n */
            aastore
        16: .line 113
            aload 0 /* this */
            iload 4 /* nc */
            iload 6 /* nbytes */
            iadd
            putfield com.sun.tools.javac.util.SharedNameTable.nc:I
        17: .line 114
            iload 6 /* nbytes */
            ifne 19
        18: .line 115
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.util.SharedNameTable.nc:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.util.SharedNameTable.nc:I
        19: .line 118
      StackMap locals:
      StackMap stack:
            aload 8 /* n */
            areturn
        end local 8 // com.sun.tools.javac.util.SharedNameTable$NameImpl n
        end local 7 // int h
        end local 6 // int nbytes
        end local 5 // byte[] bytes
        end local 4 // int nc
        end local 3 // int len
        end local 2 // int start
        end local 1 // char[] cs
        end local 0 // com.sun.tools.javac.util.SharedNameTable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lcom/sun/tools/javac/util/SharedNameTable;
            0   20     1      cs  [C
            0   20     2   start  I
            0   20     3     len  I
            1   20     4      nc  I
            2   20     5   bytes  [B
            3   20     6  nbytes  I
            4   20     7       h  I
            5   20     8       n  Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
    MethodParameters:
       Name  Flags
      cs     
      start  
      len    

  public com.sun.tools.javac.util.Name fromUtf(byte[], int, int);
    descriptor: ([BII)Lcom/sun/tools/javac/util/Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.util.SharedNameTable this
        start local 1 // byte[] cs
        start local 2 // int start
        start local 3 // int len
         0: .line 123
            aload 1 /* cs */
            iload 2 /* start */
            iload 3 /* len */
            invokestatic com.sun.tools.javac.util.SharedNameTable.hashValue:([BII)I
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashMask:I
            iand
            istore 4 /* h */
        start local 4 // int h
         1: .line 124
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 4 /* h */
            aaload
            astore 5 /* n */
        start local 5 // com.sun.tools.javac.util.SharedNameTable$NameImpl n
         2: .line 125
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.bytes:[B
            astore 6 /* names */
        start local 6 // byte[] names
         3: .line 126
            goto 5
         4: .line 128
      StackMap locals: int com.sun.tools.javac.util.SharedNameTable$NameImpl byte[]
      StackMap stack:
            aload 5 /* n */
            getfield com.sun.tools.javac.util.SharedNameTable$NameImpl.next:Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            astore 5 /* n */
         5: .line 126
      StackMap locals:
      StackMap stack:
            aload 5 /* n */
            ifnull 7
         6: .line 127
            aload 5 /* n */
            invokevirtual com.sun.tools.javac.util.SharedNameTable$NameImpl.getByteLength:()I
            iload 3 /* len */
            if_icmpne 4
            aload 6 /* names */
            aload 5 /* n */
            getfield com.sun.tools.javac.util.SharedNameTable$NameImpl.index:I
            aload 1 /* cs */
            iload 2 /* start */
            iload 3 /* len */
            invokestatic com.sun.tools.javac.util.SharedNameTable.equals:([BI[BII)Z
            ifeq 4
         7: .line 130
      StackMap locals:
      StackMap stack:
            aload 5 /* n */
            ifnonnull 19
         8: .line 131
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.nc:I
            istore 7 /* nc */
        start local 7 // int nc
         9: .line 132
            aload 0 /* this */
            aload 6 /* names */
            iload 7 /* nc */
            iload 3 /* len */
            iadd
            invokestatic com.sun.tools.javac.util.ArrayUtils.ensureCapacity:([BI)[B
            dup_x1
            putfield com.sun.tools.javac.util.SharedNameTable.bytes:[B
            astore 6 /* names */
        10: .line 133
            aload 1 /* cs */
            iload 2 /* start */
            aload 6 /* names */
            iload 7 /* nc */
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 134
            new com.sun.tools.javac.util.SharedNameTable$NameImpl
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.util.SharedNameTable$NameImpl.<init>:(Lcom/sun/tools/javac/util/SharedNameTable;)V
            astore 5 /* n */
        12: .line 135
            aload 5 /* n */
            iload 7 /* nc */
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.index:I
        13: .line 136
            aload 5 /* n */
            iload 3 /* len */
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.length:I
        14: .line 137
            aload 5 /* n */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 4 /* h */
            aaload
            putfield com.sun.tools.javac.util.SharedNameTable$NameImpl.next:Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
        15: .line 138
            aload 0 /* this */
            getfield com.sun.tools.javac.util.SharedNameTable.hashes:[Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            iload 4 /* h */
            aload 5 /* n */
            aastore
        16: .line 139
            aload 0 /* this */
            iload 7 /* nc */
            iload 3 /* len */
            iadd
            putfield com.sun.tools.javac.util.SharedNameTable.nc:I
        17: .line 140
            iload 3 /* len */
            ifne 19
        18: .line 141
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.util.SharedNameTable.nc:I
            iconst_1
            iadd
            putfield com.sun.tools.javac.util.SharedNameTable.nc:I
        end local 7 // int nc
        19: .line 144
      StackMap locals:
      StackMap stack:
            aload 5 /* n */
            areturn
        end local 6 // byte[] names
        end local 5 // com.sun.tools.javac.util.SharedNameTable$NameImpl n
        end local 4 // int h
        end local 3 // int len
        end local 2 // int start
        end local 1 // byte[] cs
        end local 0 // com.sun.tools.javac.util.SharedNameTable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lcom/sun/tools/javac/util/SharedNameTable;
            0   20     1     cs  [B
            0   20     2  start  I
            0   20     3    len  I
            1   20     4      h  I
            2   20     5      n  Lcom/sun/tools/javac/util/SharedNameTable$NameImpl;
            3   20     6  names  [B
            9   19     7     nc  I
    MethodParameters:
       Name  Flags
      cs     
      start  
      len    

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.util.SharedNameTable this
         0: .line 149
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.SharedNameTable.dispose:(Lcom/sun/tools/javac/util/SharedNameTable;)V
         1: .line 150
            return
        end local 0 // com.sun.tools.javac.util.SharedNameTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/util/SharedNameTable;
}
SourceFile: "SharedNameTable.java"
NestMembers:
  com.sun.tools.javac.util.SharedNameTable$NameImpl
InnerClasses:
  public abstract Table = com.sun.tools.javac.util.Name$Table of com.sun.tools.javac.util.Name
  NameImpl = com.sun.tools.javac.util.SharedNameTable$NameImpl of com.sun.tools.javac.util.SharedNameTable