public class sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass extends sun.jvm.hotspot.utilities.soql.JSJavaKlass
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass
super_class: sun.jvm.hotspot.utilities.soql.JSJavaKlass
{
private static final int FIELD_SOURCE_FILE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FIELD_INTERFACES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int FIELD_FIELDS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int FIELD_METHODS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int FIELD_IS_PRIVATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int FIELD_IS_PUBLIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int FIELD_IS_PROTECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int FIELD_IS_PACKAGE_PRIVATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int FIELD_IS_STATIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int FIELD_IS_FINAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int FIELD_IS_ABSTRACT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
private static final int FIELD_IS_STRICT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int FIELD_IS_SYNTHETIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 13
private static final int FIELD_IS_INTERFACE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 14
private static final int FIELD_CLASS_LOADER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 15
private static final int FIELD_STATICS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 18
private static final int FIELD_UNDEFINED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static java.util.Map fields;
descriptor: Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.util.Map instanceFields;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
private java.util.Map staticFields;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] instanceFieldNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] staticFieldNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private sun.jvm.hotspot.oops.AccessFlags accFlags;
descriptor: Lsun/jvm/hotspot/oops/AccessFlags;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.fields:Ljava/util/Map;
1: ldc "sourceFile"
iconst_1
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
2: ldc "interfaces"
iconst_2
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
3: ldc "fields"
iconst_3
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
4: ldc "methods"
iconst_4
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
5: ldc "isPrivate"
iconst_5
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
6: ldc "isPublic"
bipush 6
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
7: ldc "isProtected"
bipush 7
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
8: ldc "isPackagePrivate"
bipush 8
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
9: ldc "isStatic"
bipush 9
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
10: ldc "isFinal"
bipush 10
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
11: ldc "isAbstract"
bipush 11
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
12: ldc "isStrict"
bipush 12
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
13: ldc "isSynthetic"
bipush 13
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
14: ldc "isInterface"
bipush 14
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
15: ldc "classLoader"
bipush 15
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
16: ldc "statics"
bipush 18
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.addField:(Ljava/lang/String;I)V
17: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(sun.jvm.hotspot.oops.InstanceKlass, sun.jvm.hotspot.utilities.soql.JSJavaFactory);
descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.jvm.hotspot.utilities.soql.JSJavaKlass.<init>:(Lsun/jvm/hotspot/oops/Klass;Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;)V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFields:Ljava/util/Map;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 4 1 kls Lsun/jvm/hotspot/oops/InstanceKlass;
0 4 2 fac Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
MethodParameters:
Name Flags
kls
fac
public final sun.jvm.hotspot.oops.InstanceKlass getInstanceKlass();
descriptor: ()Lsun/jvm/hotspot/oops/InstanceKlass;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getKlass:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
public java.lang.Object getMetaClassFieldValue(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getFieldID:(Ljava/lang/String;)I
istore 2
start local 2 1: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 3
start local 3 2: iload 2
tableswitch { // -1 - 18
-1: 25
0: 25
1: 3
2: 7
3: 8
4: 9
5: 10
6: 11
7: 12
8: 13
9: 17
10: 18
11: 19
12: 20
13: 21
14: 22
15: 23
16: 25
17: 25
18: 24
default: 25
}
3: StackMap locals: int sun.jvm.hotspot.oops.InstanceKlass
StackMap stack:
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSourceFileName:()Lsun/jvm/hotspot/oops/Symbol;
astore 4
start local 4 4: aload 4
ifnull 5
aload 4
invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
goto 6
StackMap locals: sun.jvm.hotspot.oops.Symbol
StackMap stack:
5: ldc "<unknown>"
StackMap locals:
StackMap stack: java.lang.String
6: areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInterfaces:()Lsun/jvm/hotspot/utilities/soql/JSList;
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSList:(Ljava/util/List;)Lsun/jvm/hotspot/utilities/soql/JSList;
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateMethods:()Ljava/util/List;
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSList:(Ljava/util/List;)Lsun/jvm/hotspot/utilities/soql/JSList;
areturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isPrivate:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isPublic:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isProtected:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
astore 4
start local 4 14: aload 4
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isPrivate:()Z
ifne 15
aload 4
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isPublic:()Z
ifne 15
aload 4
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isProtected:()Z
ifne 15
iconst_1
goto 16
StackMap locals: sun.jvm.hotspot.oops.AccessFlags
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 4 17: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isStatic:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
18: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isFinal:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isAbstract:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isStrict:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getAccessFlags:()Lsun/jvm/hotspot/oops/AccessFlags;
invokevirtual sun.jvm.hotspot.oops.AccessFlags.isSynthetic:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
22: StackMap locals:
StackMap stack:
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.isInterface:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getClassLoader:()Lsun/jvm/hotspot/oops/Oop;
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSJavaObject:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/utilities/soql/JSJavaObject;
areturn
24: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getStatics:()Lsun/jvm/hotspot/utilities/soql/JSMap;
areturn
25: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial sun.jvm.hotspot.utilities.soql.JSJavaKlass.getMetaClassFieldValue:(Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 26 1 name Ljava/lang/String;
1 26 2 fieldID I
2 26 3 ik Lsun/jvm/hotspot/oops/InstanceKlass;
4 7 4 sourceFile Lsun/jvm/hotspot/oops/Symbol;
14 17 4 acc Lsun/jvm/hotspot/oops/AccessFlags;
MethodParameters:
Name Flags
name
public boolean hasMetaClassField(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getFieldID:(Ljava/lang/String;)I
iconst_m1
if_icmpeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial sun.jvm.hotspot.utilities.soql.JSJavaKlass.hasMetaClassField:(Ljava/lang/String;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 3 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
public boolean isArray();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
public java.lang.String[] getMetaClassFieldNames();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
invokespecial sun.jvm.hotspot.utilities.soql.JSJavaKlass.getMetaClassFieldNames:()[Ljava/lang/String;
astore 1
start local 1 1: getstatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.fields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 2
start local 2 2: aload 2
invokeinterface java.util.Set.size:()I
aload 1
arraylength
iadd
anewarray java.lang.String
astore 3
start local 3 3: aload 1
iconst_0
aload 3
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 1
arraylength
istore 4
start local 4 5: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
start local 5 6: goto 9
7: StackMap locals: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass java.lang.String[] java.util.Set java.lang.String[] int java.util.Iterator
StackMap stack:
aload 3
iload 4
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
aastore
8: iinc 4 1
9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 5 10: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
1 11 1 superFields [Ljava/lang/String;
2 11 2 k Ljava/util/Set;
3 11 3 res [Ljava/lang/String;
5 11 4 i I
6 10 5 itr Ljava/util/Iterator;
public java.lang.Object getInstanceFieldValue(java.lang.String, sun.jvm.hotspot.oops.Instance);
descriptor: (Ljava/lang/String;Lsun/jvm/hotspot/oops/Instance;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.findInstanceField:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 0
aload 3
aload 1
aload 2
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getFieldValue:(Lsun/jvm/hotspot/oops/Field;Ljava/lang/String;Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/Object;
areturn
3: StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
new java.lang.NoSuchFieldException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not field of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.NoSuchFieldException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 6 1 name Ljava/lang/String;
0 6 2 instance Lsun/jvm/hotspot/oops/Instance;
1 6 3 fld Lsun/jvm/hotspot/oops/Field;
Exceptions:
throws java.lang.NoSuchFieldException
MethodParameters:
Name Flags
name
instance
public java.lang.Object getStaticFieldValue(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.findStaticField:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
aload 2
aload 1
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getFieldValue:(Lsun/jvm/hotspot/oops/Field;Ljava/lang/String;Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/lang/Object;
areturn
3: StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
new java.lang.NoSuchFieldException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not field of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getName:()Lsun/jvm/hotspot/oops/Symbol;
invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.NoSuchFieldException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 6 1 name Ljava/lang/String;
1 6 2 fld Lsun/jvm/hotspot/oops/Field;
Exceptions:
throws java.lang.NoSuchFieldException
MethodParameters:
Name Flags
name
public java.lang.String[] getInstanceFieldNames();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFieldNames:[Ljava/lang/String;
ifnonnull 22
1: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 2: goto 13
3: StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
StackMap stack:
aload 1
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
astore 2
start local 2 4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 5: goto 11
6: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 4
start local 4 7: aload 4
invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
ifne 11
8: aload 4
invokevirtual sun.jvm.hotspot.oops.Field.getID:()Lsun/jvm/hotspot/oops/FieldIdentifier;
invokevirtual sun.jvm.hotspot.oops.FieldIdentifier.getName:()Ljava/lang/String;
astore 5
start local 5 9: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 11
10: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
aload 5
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 3 12: aload 1
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSuper:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
astore 1
end local 2 13: StackMap locals:
StackMap stack:
aload 1
ifnonnull 3
14: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 2
start local 2 15: aload 0
aload 2
invokeinterface java.util.Set.size:()I
anewarray java.lang.String
putfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFieldNames:[Ljava/lang/String;
16: iconst_0
istore 3
start local 3 17: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
start local 4 18: goto 21
19: StackMap locals: java.util.Set int java.util.Iterator
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFieldNames:[Ljava/lang/String;
iload 3
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
aastore
20: iinc 3 1
StackMap locals:
StackMap stack:
21: aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
end local 4 end local 3 end local 2 end local 1 22: StackMap locals: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFieldNames:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
2 22 1 current Lsun/jvm/hotspot/oops/InstanceKlass;
4 13 2 tmp Ljava/util/List;
5 12 3 itr Ljava/util/Iterator;
7 11 4 fld Lsun/jvm/hotspot/oops/Field;
9 11 5 name Ljava/lang/String;
15 22 2 s Ljava/util/Set;
17 22 3 i I
18 22 4 itr Ljava/util/Iterator;
public boolean hasInstanceField(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.findInstanceField:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
astore 2
start local 2 1: aload 2
ifnull 2
iconst_1
goto 3
StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 4 1 name Ljava/lang/String;
1 4 2 fld Lsun/jvm/hotspot/oops/Field;
MethodParameters:
Name Flags
name
public java.lang.String[] getStaticFieldNames();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFieldNames:[Ljava/lang/String;
ifnonnull 17
1: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 2: aload 1
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
astore 2
start local 2 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 4: goto 8
5: StackMap locals: sun.jvm.hotspot.oops.InstanceKlass java.util.List java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 4
start local 4 6: aload 4
invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
ifeq 8
7: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFields:Ljava/util/Map;
aload 4
invokevirtual sun.jvm.hotspot.oops.Field.getID:()Lsun/jvm/hotspot/oops/FieldIdentifier;
invokevirtual sun.jvm.hotspot.oops.FieldIdentifier.getName:()Ljava/lang/String;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 3 9: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 3
start local 3 10: aload 0
aload 3
invokeinterface java.util.Set.size:()I
anewarray java.lang.String
putfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFieldNames:[Ljava/lang/String;
11: iconst_0
istore 4
start local 4 12: aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
start local 5 13: goto 16
14: StackMap locals: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass sun.jvm.hotspot.oops.InstanceKlass java.util.List java.util.Set int java.util.Iterator
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFieldNames:[Ljava/lang/String;
iload 4
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
aastore
15: iinc 4 1
StackMap locals:
StackMap stack:
16: aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 5 end local 4 end local 3 end local 2 end local 1 17: StackMap locals: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFieldNames:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
2 17 1 current Lsun/jvm/hotspot/oops/InstanceKlass;
3 17 2 tmp Ljava/util/List;
4 9 3 itr Ljava/util/Iterator;
6 8 4 fld Lsun/jvm/hotspot/oops/Field;
10 17 3 s Ljava/util/Set;
12 17 4 i I
13 17 5 itr Ljava/util/Iterator;
public boolean hasStaticField(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.findStaticField:(Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
astore 2
start local 2 1: aload 2
ifnull 2
iconst_1
goto 3
StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 4 1 name Ljava/lang/String;
1 4 2 fld Lsun/jvm/hotspot/oops/Field;
MethodParameters:
Name Flags
name
private static void addField(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.fields:Ljava/util/Map;
aload 0
new java.lang.Integer
dup
iload 1
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
0 2 1 fieldId I
MethodParameters:
Name Flags
name
fieldId
private static int getFieldID(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.fields:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual java.lang.Integer.intValue:()I
goto 3
StackMap locals: java.lang.Integer
StackMap stack:
2: iconst_m1
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name Ljava/lang/String;
1 4 1 res Ljava/lang/Integer;
MethodParameters:
Name Flags
name
private sun.jvm.hotspot.oops.AccessFlags getAccessFlags();
descriptor: ()Lsun/jvm/hotspot/oops/AccessFlags;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.accFlags:Lsun/jvm/hotspot/oops/AccessFlags;
ifnonnull 2
1: aload 0
new sun.jvm.hotspot.oops.AccessFlags
dup
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.computeModifierFlags:()J
invokespecial sun.jvm.hotspot.oops.AccessFlags.<init>:(J)V
putfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.accFlags:Lsun/jvm/hotspot/oops/AccessFlags;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.accFlags:Lsun/jvm/hotspot/oops/AccessFlags;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
private java.lang.Object getFieldValue(sun.jvm.hotspot.oops.Field, java.lang.String, sun.jvm.hotspot.oops.Oop);
descriptor: (Lsun/jvm/hotspot/oops/Field;Ljava/lang/String;Lsun/jvm/hotspot/oops/Oop;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual sun.jvm.hotspot.oops.Field.getFieldType:()Lsun/jvm/hotspot/oops/FieldType;
astore 4
start local 4 1: aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isObject:()Z
ifne 2
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isArray:()Z
ifeq 3
2: StackMap locals: sun.jvm.hotspot.oops.FieldType
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 1
checkcast sun.jvm.hotspot.oops.OopField
aload 3
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/oops/Oop;
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSJavaObject:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/utilities/soql/JSJavaObject;
areturn
3: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isByte:()Z
ifeq 5
4: new java.lang.Byte
dup
aload 1
checkcast sun.jvm.hotspot.oops.ByteField
aload 3
invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/oops/Oop;)B
invokespecial java.lang.Byte.<init>:(B)V
areturn
5: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isChar:()Z
ifeq 7
6: new java.lang.String
dup
iconst_1
newarray 5
dup
iconst_0
aload 1
checkcast sun.jvm.hotspot.oops.CharField
aload 3
invokevirtual sun.jvm.hotspot.oops.CharField.getValue:(Lsun/jvm/hotspot/oops/Oop;)C
castore
invokespecial java.lang.String.<init>:([C)V
areturn
7: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isDouble:()Z
ifeq 9
8: new java.lang.Double
dup
aload 1
checkcast sun.jvm.hotspot.oops.DoubleField
aload 3
invokevirtual sun.jvm.hotspot.oops.DoubleField.getValue:(Lsun/jvm/hotspot/oops/Oop;)D
invokespecial java.lang.Double.<init>:(D)V
areturn
9: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isFloat:()Z
ifeq 11
10: new java.lang.Float
dup
aload 1
checkcast sun.jvm.hotspot.oops.FloatField
aload 3
invokevirtual sun.jvm.hotspot.oops.FloatField.getValue:(Lsun/jvm/hotspot/oops/Oop;)F
invokespecial java.lang.Float.<init>:(F)V
areturn
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isInt:()Z
ifeq 13
12: new java.lang.Integer
dup
aload 1
checkcast sun.jvm.hotspot.oops.IntField
aload 3
invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/oops/Oop;)I
invokespecial java.lang.Integer.<init>:(I)V
areturn
13: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isLong:()Z
ifeq 15
14: new java.lang.Long
dup
aload 1
checkcast sun.jvm.hotspot.oops.LongField
aload 3
invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/oops/Oop;)J
invokespecial java.lang.Long.<init>:(J)V
areturn
15: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isShort:()Z
ifeq 17
16: new java.lang.Short
dup
aload 1
checkcast sun.jvm.hotspot.oops.ShortField
aload 3
invokevirtual sun.jvm.hotspot.oops.ShortField.getValue:(Lsun/jvm/hotspot/oops/Oop;)S
invokespecial java.lang.Short.<init>:(S)V
areturn
17: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isBoolean:()Z
ifeq 19
18: aload 1
checkcast sun.jvm.hotspot.oops.BooleanField
aload 3
invokevirtual sun.jvm.hotspot.oops.BooleanField.getValue:(Lsun/jvm/hotspot/oops/Oop;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
19: StackMap locals:
StackMap stack:
getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
ifeq 21
20: iconst_0
new java.lang.StringBuilder
dup
ldc "invalid field type for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
21: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 22 1 fld Lsun/jvm/hotspot/oops/Field;
0 22 2 name Ljava/lang/String;
0 22 3 oop Lsun/jvm/hotspot/oops/Oop;
1 22 4 fd Lsun/jvm/hotspot/oops/FieldType;
MethodParameters:
Name Flags
fld
name
oop
private java.lang.Object getFieldValue(sun.jvm.hotspot.oops.Field, java.lang.String, sun.jvm.hotspot.oops.InstanceKlass);
descriptor: (Lsun/jvm/hotspot/oops/Field;Ljava/lang/String;Lsun/jvm/hotspot/oops/InstanceKlass;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual sun.jvm.hotspot.oops.Field.getFieldType:()Lsun/jvm/hotspot/oops/FieldType;
astore 4
start local 4 1: aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isObject:()Z
ifne 2
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isArray:()Z
ifeq 3
2: StackMap locals: sun.jvm.hotspot.oops.FieldType
StackMap stack:
aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 1
checkcast sun.jvm.hotspot.oops.OopField
aload 3
invokevirtual sun.jvm.hotspot.oops.OopField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)Lsun/jvm/hotspot/oops/Oop;
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSJavaObject:(Lsun/jvm/hotspot/oops/Oop;)Lsun/jvm/hotspot/utilities/soql/JSJavaObject;
areturn
3: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isByte:()Z
ifeq 5
4: new java.lang.Byte
dup
aload 1
checkcast sun.jvm.hotspot.oops.ByteField
aload 3
invokevirtual sun.jvm.hotspot.oops.ByteField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)B
invokespecial java.lang.Byte.<init>:(B)V
areturn
5: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isChar:()Z
ifeq 7
6: new java.lang.String
dup
iconst_1
newarray 5
dup
iconst_0
aload 1
checkcast sun.jvm.hotspot.oops.CharField
aload 3
invokevirtual sun.jvm.hotspot.oops.CharField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)C
castore
invokespecial java.lang.String.<init>:([C)V
areturn
7: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isDouble:()Z
ifeq 9
8: new java.lang.Double
dup
aload 1
checkcast sun.jvm.hotspot.oops.DoubleField
aload 3
invokevirtual sun.jvm.hotspot.oops.DoubleField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)D
invokespecial java.lang.Double.<init>:(D)V
areturn
9: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isFloat:()Z
ifeq 11
10: new java.lang.Float
dup
aload 1
checkcast sun.jvm.hotspot.oops.FloatField
aload 3
invokevirtual sun.jvm.hotspot.oops.FloatField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)F
invokespecial java.lang.Float.<init>:(F)V
areturn
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isInt:()Z
ifeq 13
12: new java.lang.Integer
dup
aload 1
checkcast sun.jvm.hotspot.oops.IntField
aload 3
invokevirtual sun.jvm.hotspot.oops.IntField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)I
invokespecial java.lang.Integer.<init>:(I)V
areturn
13: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isLong:()Z
ifeq 15
14: new java.lang.Long
dup
aload 1
checkcast sun.jvm.hotspot.oops.LongField
aload 3
invokevirtual sun.jvm.hotspot.oops.LongField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)J
invokespecial java.lang.Long.<init>:(J)V
areturn
15: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isShort:()Z
ifeq 17
16: new java.lang.Short
dup
aload 1
checkcast sun.jvm.hotspot.oops.ShortField
aload 3
invokevirtual sun.jvm.hotspot.oops.ShortField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)S
invokespecial java.lang.Short.<init>:(S)V
areturn
17: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.jvm.hotspot.oops.FieldType.isBoolean:()Z
ifeq 19
18: aload 1
checkcast sun.jvm.hotspot.oops.BooleanField
aload 3
invokevirtual sun.jvm.hotspot.oops.BooleanField.getValue:(Lsun/jvm/hotspot/runtime/VMObject;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
19: StackMap locals:
StackMap stack:
getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
ifeq 21
20: iconst_0
new java.lang.StringBuilder
dup
ldc "invalid field type for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
21: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 22 1 fld Lsun/jvm/hotspot/oops/Field;
0 22 2 name Ljava/lang/String;
0 22 3 oop Lsun/jvm/hotspot/oops/InstanceKlass;
1 22 4 fd Lsun/jvm/hotspot/oops/FieldType;
MethodParameters:
Name Flags
fld
name
oop
private sun.jvm.hotspot.oops.Field findInstanceField(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
areturn
3: StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 3
start local 3 4: goto 14
5: StackMap locals: sun.jvm.hotspot.oops.InstanceKlass
StackMap stack:
aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
astore 4
start local 4 6: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 7: goto 12
8: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 2
9: aload 2
invokevirtual sun.jvm.hotspot.oops.Field.getID:()Lsun/jvm/hotspot/oops/FieldIdentifier;
invokevirtual sun.jvm.hotspot.oops.FieldIdentifier.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
aload 2
invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
ifne 12
10: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.instanceFields:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 2
areturn
12: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 5 13: aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSuper:()Lsun/jvm/hotspot/oops/Klass;
checkcast sun.jvm.hotspot.oops.InstanceKlass
astore 3
end local 4 14: StackMap locals:
StackMap stack:
aload 3
ifnonnull 5
end local 3 15: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 16 1 name Ljava/lang/String;
1 16 2 fld Lsun/jvm/hotspot/oops/Field;
4 15 3 current Lsun/jvm/hotspot/oops/InstanceKlass;
6 14 4 tmp Ljava/util/List;
7 13 5 itr Ljava/util/Iterator;
MethodParameters:
Name Flags
name
private sun.jvm.hotspot.oops.Field findStaticField(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/jvm/hotspot/oops/Field;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFields:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
areturn
3: StackMap locals: sun.jvm.hotspot.oops.Field
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 3
start local 3 4: aload 3
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getImmediateFields:()Ljava/util/List;
astore 4
start local 4 5: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 6: goto 11
7: StackMap locals: sun.jvm.hotspot.oops.InstanceKlass java.util.List java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Field
astore 2
8: aload 2
invokevirtual sun.jvm.hotspot.oops.Field.getID:()Lsun/jvm/hotspot/oops/FieldIdentifier;
invokevirtual sun.jvm.hotspot.oops.FieldIdentifier.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
aload 2
invokevirtual sun.jvm.hotspot.oops.Field.isStatic:()Z
ifeq 11
9: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.staticFields:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 2
areturn
11: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 5 12: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
0 13 1 name Ljava/lang/String;
1 13 2 fld Lsun/jvm/hotspot/oops/Field;
4 13 3 current Lsun/jvm/hotspot/oops/InstanceKlass;
5 13 4 tmp Ljava/util/List;
6 12 5 itr Ljava/util/Iterator;
MethodParameters:
Name Flags
name
private sun.jvm.hotspot.utilities.soql.JSList getInterfaces();
descriptor: ()Lsun/jvm/hotspot/utilities/soql/JSList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getInstanceKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
astore 1
start local 1 1: aload 1
invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getDirectImplementedInterfaces:()Ljava/util/List;
astore 2
start local 2 2: new java.util.ArrayList
dup
iconst_0
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 3: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 4: goto 7
5: StackMap locals: sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass sun.jvm.hotspot.oops.InstanceKlass java.util.List java.util.List java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.jvm.hotspot.oops.Klass
astore 5
start local 5 6: aload 3
aload 5
invokevirtual sun.jvm.hotspot.oops.Klass.getJavaMirror:()Lsun/jvm/hotspot/oops/Instance;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 8: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 3
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSList:(Ljava/util/List;)Lsun/jvm/hotspot/utilities/soql/JSList;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
1 9 1 ik Lsun/jvm/hotspot/oops/InstanceKlass;
2 9 2 intfs Ljava/util/List;
3 9 3 res Ljava/util/List;
4 8 4 itr Ljava/util/Iterator;
6 7 5 k Lsun/jvm/hotspot/oops/Klass;
private sun.jvm.hotspot.utilities.soql.JSMap getStatics();
descriptor: ()Lsun/jvm/hotspot/utilities/soql/JSMap;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getStaticFieldNames:()[Ljava/lang/String;
astore 1
start local 1 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 8
4: StackMap locals: java.lang.String[] java.util.Map int
StackMap stack:
aload 2
aload 1
iload 3
aaload
aload 0
aload 1
iload 3
aaload
invokevirtual sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.getStaticFieldValue:(Ljava/lang/String;)Ljava/lang/Object;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: goto 7
StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
6: pop
7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 9: aload 0
getfield sun.jvm.hotspot.utilities.soql.JSJavaInstanceKlass.factory:Lsun/jvm/hotspot/utilities/soql/JSJavaFactory;
aload 2
invokeinterface sun.jvm.hotspot.utilities.soql.JSJavaFactory.newJSMap:(Ljava/util/Map;)Lsun/jvm/hotspot/utilities/soql/JSMap;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/jvm/hotspot/utilities/soql/JSJavaInstanceKlass;
1 10 1 names [Ljava/lang/String;
2 10 2 map Ljava/util/Map;
3 9 3 i I
Exception table:
from to target type
4 5 6 Class java.lang.NoSuchFieldException
}
SourceFile: "JSJavaInstanceKlass.java"