public class sun.jvm.hotspot.oops.OopUtilities
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.jvm.hotspot.oops.OopUtilities
super_class: java.lang.Object
{
private static sun.jvm.hotspot.oops.ByteField coderField;
descriptor: Lsun/jvm/hotspot/oops/ByteField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField valueField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadGroupParentField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadGroupNameField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.IntField threadGroupNThreadsField;
descriptor: Lsun/jvm/hotspot/oops/IntField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadGroupThreadsField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.IntField threadGroupNGroupsField;
descriptor: Lsun/jvm/hotspot/oops/IntField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadGroupGroupsField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadNameField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadGroupField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.LongField threadEETopField;
descriptor: Lsun/jvm/hotspot/oops/LongField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.LongField threadTIDField;
descriptor: Lsun/jvm/hotspot/oops/LongField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.IntField threadStatusField;
descriptor: Lsun/jvm/hotspot/oops/IntField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField threadParkBlockerField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int THREAD_STATUS_NEW;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.jvm.hotspot.oops.OopField absOwnSyncOwnerThreadField;
descriptor: Lsun/jvm/hotspot/oops/OopField;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final int JVMTI_THREAD_STATE_ALIVE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.jvm.hotspot.oops.OopUtilities$1
dup
invokespecial sun.jvm.hotspot.oops.OopUtilities$1.<init>:()V
invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Ljava/util/Observer;)V
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/oops/OopUtilities;
private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 db Lsun/jvm/hotspot/types/TypeDataBase;
MethodParameters:
Name Flags
db
public static java.lang.String charArrayToString(sun.jvm.hotspot.oops.TypeArray);
descriptor: (Lsun/jvm/hotspot/oops/TypeArray;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
l2i
istore 1
start local 1 3: new java.lang.StringBuffer
dup
iload 1
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 2
start local 2 4: iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: int java.lang.StringBuffer int
StackMap stack:
aload 2
aload 0
iload 3
i2l
invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 1
if_icmplt 6
end local 3 9: aload 2
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 charArray Lsun/jvm/hotspot/oops/TypeArray;
3 10 1 length I
4 10 2 buf Ljava/lang/StringBuffer;
5 9 3 i I
MethodParameters:
Name Flags
charArray
public static java.lang.String byteArrayToString(sun.jvm.hotspot.oops.TypeArray, byte);
descriptor: (Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.oops.TypeArray.getLength:()J
l2i
iload 1
ishr
istore 2
start local 2 3: new java.lang.StringBuffer
dup
iload 2
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 3
start local 3 4: iload 1
ifne 11
5: iconst_0
istore 4
start local 4 6: goto 9
7: StackMap locals: int java.lang.StringBuffer int
StackMap stack:
aload 3
aload 0
iload 4
i2l
invokevirtual sun.jvm.hotspot.oops.TypeArray.getByteAt:(J)B
sipush 255
iand
i2c
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 2
if_icmplt 7
end local 4 10: goto 16
11: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 3
aload 0
iload 4
i2l
invokevirtual sun.jvm.hotspot.oops.TypeArray.getCharAt:(J)C
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
14: iinc 4 1
StackMap locals:
StackMap stack:
15: iload 4
iload 2
if_icmplt 13
end local 4 16: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 byteArray Lsun/jvm/hotspot/oops/TypeArray;
0 17 1 coder B
3 17 2 length I
4 17 3 buf Ljava/lang/StringBuffer;
6 10 4 i I
12 16 4 i I
MethodParameters:
Name Flags
byteArray
coder
public static java.lang.String escapeString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 18
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0
iload 2
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 4: iload 3
bipush 32
if_icmplt 5
iload 3
bipush 127
if_icmplt 6
StackMap locals: int
StackMap stack:
5: iload 3
bipush 39
if_icmpeq 6
iload 3
bipush 92
if_icmpne 9
6: StackMap locals:
StackMap stack:
aload 1
ifnull 17
7: aload 1
iload 3
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: goto 17
9: StackMap locals:
StackMap stack:
aload 1
ifnonnull 12
10: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.String.length:()I
iconst_2
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
11: aload 1
aload 0
iconst_0
iload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
aload 1
ldc "\\u"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: iload 3
bipush 16
if_icmpge 14
aload 1
ldc "000"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 16
14: StackMap locals:
StackMap stack:
iload 3
sipush 256
if_icmpge 15
aload 1
ldc "00"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 16
15: StackMap locals:
StackMap stack:
iload 3
sipush 4096
if_icmpge 16
aload 1
ldc "0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
aload 1
iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 17: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
18: iload 2
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 2 19: aload 1
ifnull 21
20: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
21: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 s Ljava/lang/String;
1 22 1 sb Ljava/lang/StringBuilder;
2 19 2 index I
4 17 3 value C
MethodParameters:
Name Flags
s
public static java.lang.String stringOopToString(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
astore 1
start local 1 1: aload 1
ldc "coder"
ldc "B"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.ByteField
putstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
2: aload 1
ldc "value"
ldc "[B"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
3: getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
ifeq 10
4: getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
ifnull 5
iconst_1
goto 6
StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: ldc "Field 'coder' of java.lang.String not found"
invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
7: getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
ifnull 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: ldc "Field 'value' of java.lang.String not found"
invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
10: StackMap locals:
StackMap stack:
getstatic sun.jvm.hotspot.oops.OopUtilities.valueField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
checkcast sun.jvm.hotspot.oops.TypeArray
getstatic sun.jvm.hotspot.oops.OopUtilities.coderField:Lsun/jvm/hotspot/oops/ByteField;
aload 0
invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
invokestatic sun.jvm.hotspot.oops.OopUtilities.byteArrayToString:(Lsun/jvm/hotspot/oops/TypeArray;B)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 stringOop Lsun/jvm/hotspot/oops/Oop;
1 11 1 k Lsun/jvm/hotspot/oops/InstanceKlass;
MethodParameters:
Name Flags
stringOop
public static java.lang.String stringOopToEscapedString(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
invokestatic sun.jvm.hotspot.oops.OopUtilities.escapeString:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stringOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
stringOop
private static void initThreadGroupFields();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=0
0: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
ifnonnull 19
1: invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
astore 0
start local 0 2: invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadGroupKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 3: aload 1
ldc "parent"
ldc "Ljava/lang/ThreadGroup;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
4: aload 1
ldc "name"
ldc "Ljava/lang/String;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
5: aload 1
ldc "nthreads"
ldc "I"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.IntField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
6: aload 1
ldc "threads"
ldc "[Ljava/lang/Thread;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
7: aload 1
ldc "ngroups"
ldc "I"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.IntField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
8: aload 1
ldc "groups"
ldc "[Ljava/lang/ThreadGroup;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
9: getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
ifeq 19
10: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
ifnull 16
11: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
ifnull 16
12: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
ifnull 16
13: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
ifnull 16
14: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
ifnull 16
15: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
ifnull 16
iconst_1
goto 17
StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: ldc "must find all java.lang.ThreadGroup fields"
18: invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
end local 1 end local 0 19: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
2 19 0 sysDict Lsun/jvm/hotspot/memory/SystemDictionary;
3 19 1 k Lsun/jvm/hotspot/oops/InstanceKlass;
public static sun.jvm.hotspot.oops.Oop threadGroupOopGetParent(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupParentField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 threadGroupOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadGroupOop
public static java.lang.String threadGroupOopGetName(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNameField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 threadGroupOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadGroupOop
public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetThreads(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNThreadsField:Lsun/jvm/hotspot/oops/IntField;
aload 0
invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
istore 1
start local 1 2: iload 1
anewarray sun.jvm.hotspot.oops.Oop
astore 2
start local 2 3: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupThreadsField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
checkcast sun.jvm.hotspot.oops.ObjArray
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
StackMap stack:
aload 2
iload 4
aload 3
iload 4
i2l
invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
aastore
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 1
if_icmplt 6
end local 4 9: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 threadGroupOop Lsun/jvm/hotspot/oops/Oop;
2 10 1 nthreads I
3 10 2 result [Lsun/jvm/hotspot/oops/Oop;
4 10 3 threads Lsun/jvm/hotspot/oops/ObjArray;
5 9 4 i I
MethodParameters:
Name Flags
threadGroupOop
public static sun.jvm.hotspot.oops.Oop[] threadGroupOopGetGroups(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)[Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadGroupFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupNGroupsField:Lsun/jvm/hotspot/oops/IntField;
aload 0
invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
istore 1
start local 1 2: iload 1
anewarray sun.jvm.hotspot.oops.Oop
astore 2
start local 2 3: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupGroupsField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
checkcast sun.jvm.hotspot.oops.ObjArray
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: sun.jvm.hotspot.oops.Oop int sun.jvm.hotspot.oops.Oop[] sun.jvm.hotspot.oops.ObjArray int
StackMap stack:
aload 2
iload 4
aload 3
iload 4
i2l
invokevirtual sun.jvm.hotspot.oops.ObjArray.getObjAt:(J)Lsun/jvm/hotspot/oops/Oop;
aastore
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 1
if_icmplt 6
end local 4 9: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 threadGroupOop Lsun/jvm/hotspot/oops/Oop;
2 10 1 ngroups I
3 10 2 result [Lsun/jvm/hotspot/oops/Oop;
4 10 3 groups Lsun/jvm/hotspot/oops/ObjArray;
5 9 4 i I
MethodParameters:
Name Flags
threadGroupOop
private static void initThreadFields();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=0
0: getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
ifnonnull 20
1: invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
astore 0
start local 0 2: invokestatic sun.jvm.hotspot.memory.SystemDictionary.getThreadKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 3: aload 1
ldc "name"
ldc "Ljava/lang/String;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
4: aload 1
ldc "group"
ldc "Ljava/lang/ThreadGroup;"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
5: aload 1
ldc "eetop"
ldc "J"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.LongField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
6: aload 1
ldc "tid"
ldc "J"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.LongField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
7: aload 1
ldc "threadStatus"
ldc "I"
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.IntField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
8: aload 1
ldc "parkBlocker"
9: ldc "Ljava/lang/Object;"
10: invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
putstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
11: invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getTypeDataBase:()Lsun/jvm/hotspot/types/TypeDataBase;
astore 2
start local 2 12: aload 2
ldc "java_lang_Thread::NEW"
invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupIntConstant:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
putstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
13: getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
ifeq 20
14: getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
ifnull 17
15: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
ifnull 17
16: getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
ifnull 17
iconst_1
goto 18
StackMap locals: sun.jvm.hotspot.memory.SystemDictionary sun.jvm.hotspot.oops.InstanceKlass sun.jvm.hotspot.types.TypeDataBase
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: ldc "must find all java.lang.Thread fields"
19: invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
end local 2 end local 1 end local 0 20: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
2 20 0 sysDict Lsun/jvm/hotspot/memory/SystemDictionary;
3 20 1 k Lsun/jvm/hotspot/oops/InstanceKlass;
12 20 2 db Lsun/jvm/hotspot/types/TypeDataBase;
public static sun.jvm.hotspot.oops.Oop threadOopGetThreadGroup(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadGroupField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 threadOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadOop
public static java.lang.String threadOopGetName(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadNameField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
invokestatic sun.jvm.hotspot.oops.OopUtilities.stringOopToString:(Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 threadOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadOop
public static sun.jvm.hotspot.runtime.JavaThread threadOopGetJavaThread(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: aload 0
invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
getstatic sun.jvm.hotspot.oops.OopUtilities.threadEETopField:Lsun/jvm/hotspot/oops/LongField;
invokevirtual sun.jvm.hotspot.oops.LongField.getOffset:()J
invokeinterface sun.jvm.hotspot.debugger.OopHandle.getAddressAt:(J)Lsun/jvm/hotspot/debugger/Address;
astore 1
start local 1 2: aload 1
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: sun.jvm.hotspot.debugger.Address
StackMap stack:
invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
aload 1
invokevirtual sun.jvm.hotspot.runtime.Threads.createJavaThreadWrapper:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/runtime/JavaThread;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 threadOop Lsun/jvm/hotspot/oops/Oop;
2 5 1 addr Lsun/jvm/hotspot/debugger/Address;
MethodParameters:
Name Flags
threadOop
public static long threadOopGetTID(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
ifnull 3
2: getstatic sun.jvm.hotspot.oops.OopUtilities.threadTIDField:Lsun/jvm/hotspot/oops/LongField;
aload 0
invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
lreturn
3: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 threadOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadOop
public static int threadOopGetThreadStatus(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
ifnull 3
2: getstatic sun.jvm.hotspot.oops.OopUtilities.threadStatusField:Lsun/jvm/hotspot/oops/IntField;
aload 0
invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
ireturn
3: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.jvm.hotspot.oops.OopUtilities.threadOopGetJavaThread:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/runtime/JavaThread;
astore 1
start local 1 4: aload 1
ifnonnull 6
5: getstatic sun.jvm.hotspot.oops.OopUtilities.THREAD_STATUS_NEW:I
ireturn
6: StackMap locals: sun.jvm.hotspot.runtime.JavaThread
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 threadOop Lsun/jvm/hotspot/oops/Oop;
4 7 1 thr Lsun/jvm/hotspot/runtime/JavaThread;
MethodParameters:
Name Flags
threadOop
public static sun.jvm.hotspot.oops.Oop threadOopGetParkBlocker(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initThreadFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
ifnull 3
2: getstatic sun.jvm.hotspot.oops.OopUtilities.threadParkBlockerField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
areturn
3: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 threadOop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
threadOop
private static void initAbsOwnSyncFields();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=0
0: getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
ifnonnull 7
1: invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
astore 0
start local 0 2: aload 0
invokevirtual sun.jvm.hotspot.memory.SystemDictionary.getAbstractOwnableSynchronizerKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 3: aload 1
ldc "exclusiveOwnerThread"
4: ldc "Ljava/lang/Thread;"
5: invokevirtual sun.jvm.hotspot.oops.InstanceKlass.findField:(Ljava/lang/String;Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
checkcast sun.jvm.hotspot.oops.OopField
6: putstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
end local 1 end local 0 7: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
2 7 0 sysDict Lsun/jvm/hotspot/memory/SystemDictionary;
3 7 1 k Lsun/jvm/hotspot/oops/InstanceKlass;
public static sun.jvm.hotspot.oops.Oop abstractOwnableSynchronizerGetOwnerThread(sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.jvm.hotspot.oops.OopUtilities.initAbsOwnSyncFields:()V
1: getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
getstatic sun.jvm.hotspot.oops.OopUtilities.absOwnSyncOwnerThreadField:Lsun/jvm/hotspot/oops/OopField;
aload 0
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 oop Lsun/jvm/hotspot/oops/Oop;
MethodParameters:
Name Flags
oop
}
SourceFile: "OopUtilities.java"
NestMembers:
sun.jvm.hotspot.oops.OopUtilities$1
InnerClasses:
sun.jvm.hotspot.oops.OopUtilities$1