public class sun.jvm.hotspot.runtime.VirtualBaseConstructor<T> extends sun.jvm.hotspot.runtime.InstanceConstructor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.runtime.VirtualBaseConstructor
  super_class: sun.jvm.hotspot.runtime.InstanceConstructor
{
  private sun.jvm.hotspot.types.TypeDataBase db;
    descriptor: Lsun/jvm/hotspot/types/TypeDataBase;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap map;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.types.Type baseType;
    descriptor: Lsun/jvm/hotspot/types/Type;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Class unknownTypeHandler;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(sun.jvm.hotspot.types.TypeDataBase, sun.jvm.hotspot.types.Type, java.lang.String, java.lang.Class);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;Lsun/jvm/hotspot/types/Type;Ljava/lang/String;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
        start local 1 // sun.jvm.hotspot.types.TypeDataBase db
        start local 2 // sun.jvm.hotspot.types.Type baseType
        start local 3 // java.lang.String packageName
        start local 4 // java.lang.Class unknownTypeHandler
         0: .line 45
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.runtime.InstanceConstructor.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* db */
            checkcast sun.jvm.hotspot.HotSpotTypeDataBase
            putfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.db:Lsun/jvm/hotspot/types/TypeDataBase;
         2: .line 47
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.map:Ljava/util/HashMap;
         3: .line 48
            aload 0 /* this */
            aload 2 /* baseType */
            putfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.baseType:Lsun/jvm/hotspot/types/Type;
         4: .line 49
            aload 0 /* this */
            aload 4 /* unknownTypeHandler */
            putfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.unknownTypeHandler:Ljava/lang/Class;
         5: .line 50
            aload 3 /* packageName */
            ifnull 26
         6: .line 54
            aload 1 /* db */
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.getTypes:()Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
         7: goto 25
         8: .line 55
      StackMap locals: sun.jvm.hotspot.runtime.VirtualBaseConstructor sun.jvm.hotspot.types.TypeDataBase sun.jvm.hotspot.types.Type java.lang.String java.lang.Class java.util.Iterator
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.types.Type
            astore 6 /* t */
        start local 6 // sun.jvm.hotspot.types.Type t
         9: .line 56
            aload 6 /* t */
            astore 7 /* superType */
        start local 7 // sun.jvm.hotspot.types.Type superType
        10: .line 57
            goto 12
        11: .line 58
      StackMap locals: sun.jvm.hotspot.types.Type sun.jvm.hotspot.types.Type
      StackMap stack:
            aload 7 /* superType */
            invokeinterface sun.jvm.hotspot.types.Type.getSuperclass:()Lsun/jvm/hotspot/types/Type;
            astore 7 /* superType */
        12: .line 57
      StackMap locals:
      StackMap stack:
            aload 7 /* superType */
            ifnull 13
            aload 7 /* superType */
            aload 2 /* baseType */
            if_acmpne 11
        13: .line 60
      StackMap locals:
      StackMap stack:
            aload 7 /* superType */
            aload 2 /* baseType */
            if_acmpne 25
        14: .line 61
            aload 6 /* t */
            astore 7 /* superType */
        15: .line 62
            aconst_null
            astore 8 /* c */
        start local 8 // java.lang.Class c
        16: .line 63
            goto 21
        17: .line 65
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* packageName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* superType */
            invokeinterface sun.jvm.hotspot.types.Type.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 8 /* c */
        18: .line 66
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Exception
        19: pop
        20: .line 68
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            ifnonnull 21
            aload 7 /* superType */
            invokeinterface sun.jvm.hotspot.types.Type.getSuperclass:()Lsun/jvm/hotspot/types/Type;
            astore 7 /* superType */
        21: .line 63
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            ifnonnull 22
            aload 7 /* superType */
            ifnonnull 17
        22: .line 70
      StackMap locals:
      StackMap stack:
            aload 8 /* c */
            ifnonnull 24
        23: .line 71
            aload 4 /* unknownTypeHandler */
            astore 8 /* c */
        24: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.map:Ljava/util/HashMap;
            aload 6 /* t */
            invokeinterface sun.jvm.hotspot.types.Type.getName:()Ljava/lang/String;
            aload 8 /* c */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.Class c
        end local 7 // sun.jvm.hotspot.types.Type superType
        end local 6 // sun.jvm.hotspot.types.Type t
        25: .line 54
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 5 // java.util.Iterator iter
        26: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class unknownTypeHandler
        end local 3 // java.lang.String packageName
        end local 2 // sun.jvm.hotspot.types.Type baseType
        end local 1 // sun.jvm.hotspot.types.TypeDataBase db
        end local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   27     0                this  Lsun/jvm/hotspot/runtime/VirtualBaseConstructor<TT;>;
            0   27     1                  db  Lsun/jvm/hotspot/types/TypeDataBase;
            0   27     2            baseType  Lsun/jvm/hotspot/types/Type;
            0   27     3         packageName  Ljava/lang/String;
            0   27     4  unknownTypeHandler  Ljava/lang/Class;
            7   26     5                iter  Ljava/util/Iterator;
            9   25     6                   t  Lsun/jvm/hotspot/types/Type;
           10   25     7           superType  Lsun/jvm/hotspot/types/Type;
           16   25     8                   c  Ljava/lang/Class;
      Exception table:
        from    to  target  type
          17    18      19  Class java.lang.Exception
    MethodParameters:
                    Name  Flags
      db                  
      baseType            
      packageName         
      unknownTypeHandler  

  public boolean addMapping(java.lang.String, java.lang.Class);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
        start local 1 // java.lang.String cTypeName
        start local 2 // java.lang.Class clazz
         0: .line 84
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.map:Ljava/util/HashMap;
            aload 1 /* cTypeName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 2
         1: .line 85
            iconst_0
            ireturn
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.map:Ljava/util/HashMap;
            aload 1 /* cTypeName */
            aload 2 /* clazz */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 89
            iconst_1
            ireturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String cTypeName
        end local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/jvm/hotspot/runtime/VirtualBaseConstructor<TT;>;
            0    4     1  cTypeName  Ljava/lang/String;
            0    4     2      clazz  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      cTypeName  
      clazz      

  public T instantiateWrapperFor(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 98
            aload 1 /* addr */
            ifnonnull 2
         1: .line 99
            aconst_null
            areturn
         2: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.db:Lsun/jvm/hotspot/types/TypeDataBase;
            aload 1 /* addr */
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.baseType:Lsun/jvm/hotspot/types/Type;
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.findDynamicTypeForAddress:(Lsun/jvm/hotspot/debugger/Address;Lsun/jvm/hotspot/types/Type;)Lsun/jvm/hotspot/types/Type;
            astore 2 /* type */
        start local 2 // sun.jvm.hotspot.types.Type type
         3: .line 103
            aload 2 /* type */
            ifnull 5
         4: .line 104
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.map:Ljava/util/HashMap;
            aload 2 /* type */
            invokeinterface sun.jvm.hotspot.types.Type.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            aload 1 /* addr */
            invokestatic sun.jvm.hotspot.runtime.VMObjectFactory.newObject:(Ljava/lang/Class;Lsun/jvm/hotspot/debugger/Address;)Ljava/lang/Object;
            areturn
         5: .line 105
      StackMap locals: sun.jvm.hotspot.types.Type
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.unknownTypeHandler:Ljava/lang/Class;
            ifnull 7
         6: .line 106
            aload 0 /* this */
            getfield sun.jvm.hotspot.runtime.VirtualBaseConstructor.unknownTypeHandler:Ljava/lang/Class;
            aload 1 /* addr */
            invokestatic sun.jvm.hotspot.runtime.VMObjectFactory.newObject:(Ljava/lang/Class;Lsun/jvm/hotspot/debugger/Address;)Ljava/lang/Object;
            areturn
         7: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* addr */
            invokevirtual sun.jvm.hotspot.runtime.VirtualBaseConstructor.newWrongTypeException:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/types/WrongTypeException;
            athrow
        end local 2 // sun.jvm.hotspot.types.Type type
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.runtime.VirtualBaseConstructor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/jvm/hotspot/runtime/VirtualBaseConstructor<TT;>;
            0    8     1  addr  Lsun/jvm/hotspot/debugger/Address;
            3    8     2  type  Lsun/jvm/hotspot/types/Type;
    Exceptions:
      throws sun.jvm.hotspot.types.WrongTypeException
    Signature: (Lsun/jvm/hotspot/debugger/Address;)TT;
    MethodParameters:
      Name  Flags
      addr  
}
Signature: <T:Ljava/lang/Object;>Lsun/jvm/hotspot/runtime/InstanceConstructor;
SourceFile: "VirtualBaseConstructor.java"