public class sun.instrument.TransformerManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.instrument.TransformerManager
super_class: java.lang.Object
{
private sun.instrument.TransformerManager$TransformerInfo[] mTransformerList;
descriptor: [Lsun/instrument/TransformerManager$TransformerInfo;
flags: (0x0002) ACC_PRIVATE
private boolean mIsRetransformable;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
anewarray sun.instrument.TransformerManager$TransformerInfo
putfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
2: aload 0
iload 1
putfield sun.instrument.TransformerManager.mIsRetransformable:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/instrument/TransformerManager;
0 4 1 isRetransformable Z
MethodParameters:
Name Flags
isRetransformable
boolean isRetransformable();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.TransformerManager.mIsRetransformable:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/TransformerManager;
public synchronized void addTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
astore 2
start local 2 1: aload 2
arraylength
iconst_1
iadd
anewarray sun.instrument.TransformerManager$TransformerInfo
astore 3
start local 3 2: aload 2
3: iconst_0
4: aload 3
5: iconst_0
6: aload 2
arraylength
7: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 3
aload 2
arraylength
new sun.instrument.TransformerManager$TransformerInfo
dup
aload 0
aload 1
invokespecial sun.instrument.TransformerManager$TransformerInfo.<init>:(Lsun/instrument/TransformerManager;Ljava/lang/instrument/ClassFileTransformer;)V
aastore
9: aload 0
aload 3
putfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/instrument/TransformerManager;
0 11 1 transformer Ljava/lang/instrument/ClassFileTransformer;
1 11 2 oldList [Lsun/instrument/TransformerManager$TransformerInfo;
2 11 3 newList [Lsun/instrument/TransformerManager$TransformerInfo;
MethodParameters:
Name Flags
transformer
public synchronized boolean removeTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
astore 3
start local 3 2: aload 3
arraylength
istore 4
start local 4 3: iload 4
iconst_1
isub
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: iload 4
iconst_1
isub
istore 7
start local 7 6: goto 12
7: StackMap locals: sun.instrument.TransformerManager java.lang.instrument.ClassFileTransformer int sun.instrument.TransformerManager$TransformerInfo[] int int int int
StackMap stack:
aload 3
iload 7
aaload
invokevirtual sun.instrument.TransformerManager$TransformerInfo.transformer:()Ljava/lang/instrument/ClassFileTransformer;
aload 1
if_acmpne 11
8: iconst_1
istore 2
9: iload 7
istore 6
10: goto 13
11: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
12: iload 7
ifge 7
end local 7 13: StackMap locals:
StackMap stack:
iload 2
ifeq 30
14: iload 5
anewarray sun.instrument.TransformerManager$TransformerInfo
astore 7
start local 7 15: iload 6
ifle 22
16: aload 3
17: iconst_0
18: aload 7
19: iconst_0
20: iload 6
21: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: StackMap locals: sun.instrument.TransformerManager$TransformerInfo[]
StackMap stack:
iload 6
iload 5
if_icmpge 29
23: aload 3
24: iload 6
iconst_1
iadd
25: aload 7
26: iload 6
27: iload 5
iload 6
isub
28: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: StackMap locals:
StackMap stack:
aload 0
aload 7
putfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
end local 7 30: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/instrument/TransformerManager;
0 31 1 transformer Ljava/lang/instrument/ClassFileTransformer;
1 31 2 found Z
2 31 3 oldList [Lsun/instrument/TransformerManager$TransformerInfo;
3 31 4 oldLength I
4 31 5 newLength I
5 31 6 matchingIndex I
6 13 7 x I
15 30 7 newList [Lsun/instrument/TransformerManager$TransformerInfo;
MethodParameters:
Name Flags
transformer
synchronized boolean includesTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: sun.instrument.TransformerManager java.lang.instrument.ClassFileTransformer top int int sun.instrument.TransformerManager$TransformerInfo[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
invokevirtual sun.instrument.TransformerManager$TransformerInfo.transformer:()Ljava/lang/instrument/ClassFileTransformer;
aload 1
if_acmpne 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/instrument/TransformerManager;
0 7 1 transformer Ljava/lang/instrument/ClassFileTransformer;
2 4 2 info Lsun/instrument/TransformerManager$TransformerInfo;
MethodParameters:
Name Flags
transformer
private sun.instrument.TransformerManager$TransformerInfo[] getSnapshotTransformerList();
descriptor: ()[Lsun/instrument/TransformerManager$TransformerInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.instrument.TransformerManager.mTransformerList:[Lsun/instrument/TransformerManager$TransformerInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/instrument/TransformerManager;
public byte[] transform(java.lang.ClassLoader, java.lang.String, java.lang.Class<?>, java.security.ProtectionDomain, );
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: aload 0
invokevirtual sun.instrument.TransformerManager.getSnapshotTransformerList:()[Lsun/instrument/TransformerManager$TransformerInfo;
astore 7
start local 7 2: aload 5
astore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 20
5: StackMap locals: sun.instrument.TransformerManager java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] int sun.instrument.TransformerManager$TransformerInfo[] byte[] int
StackMap stack:
aload 7
iload 9
aaload
astore 10
start local 10 6: aload 10
invokevirtual sun.instrument.TransformerManager$TransformerInfo.transformer:()Ljava/lang/instrument/ClassFileTransformer;
astore 11
start local 11 7: aconst_null
astore 12
start local 12 8: aload 11
aload 1
9: aload 2
10: aload 3
11: aload 4
12: aload 8
13: invokeinterface java.lang.instrument.ClassFileTransformer.transform:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
astore 12
14: goto 16
15: StackMap locals: sun.instrument.TransformerManager java.lang.ClassLoader java.lang.String java.lang.Class java.security.ProtectionDomain byte[] int sun.instrument.TransformerManager$TransformerInfo[] byte[] int sun.instrument.TransformerManager$TransformerInfo java.lang.instrument.ClassFileTransformer byte[]
StackMap stack: java.lang.Throwable
pop
16: StackMap locals:
StackMap stack:
aload 12
ifnull 19
17: iconst_1
istore 6
18: aload 12
astore 8
end local 12 end local 11 end local 10 19: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
20: iload 9
aload 7
arraylength
if_icmplt 5
end local 9 21: iload 6
ifeq 24
22: aload 8
astore 9
start local 9 23: goto 25
end local 9 24: StackMap locals:
StackMap stack:
aconst_null
astore 9
start local 9 25: StackMap locals: byte[]
StackMap stack:
aload 9
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/instrument/TransformerManager;
0 26 1 loader Ljava/lang/ClassLoader;
0 26 2 classname Ljava/lang/String;
0 26 3 classBeingRedefined Ljava/lang/Class<*>;
0 26 4 protectionDomain Ljava/security/ProtectionDomain;
0 26 5 classfileBuffer [B
1 26 6 someoneTouchedTheBytecode Z
2 26 7 transformerList [Lsun/instrument/TransformerManager$TransformerInfo;
3 26 8 bufferToUse [B
4 21 9 x I
6 19 10 transformerInfo Lsun/instrument/TransformerManager$TransformerInfo;
7 19 11 transformer Ljava/lang/instrument/ClassFileTransformer;
8 19 12 transformedBytes [B
23 24 9 result [B
25 26 9 result [B
Exception table:
from to target type
8 14 15 Class java.lang.Throwable
Signature: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;[B)[B
MethodParameters:
Name Flags
loader
classname
classBeingRedefined
protectionDomain
classfileBuffer
int getTransformerCount();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual sun.instrument.TransformerManager.getSnapshotTransformerList:()[Lsun/instrument/TransformerManager$TransformerInfo;
astore 1
start local 1 1: aload 1
arraylength
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/instrument/TransformerManager;
1 2 1 transformerList [Lsun/instrument/TransformerManager$TransformerInfo;
boolean setNativeMethodPrefix(java.lang.instrument.ClassFileTransformer, java.lang.String);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.instrument.TransformerManager.getSnapshotTransformerList:()[Lsun/instrument/TransformerManager$TransformerInfo;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 9
3: StackMap locals: sun.instrument.TransformerManager$TransformerInfo[] int
StackMap stack:
aload 3
iload 4
aaload
astore 5
start local 5 4: aload 5
invokevirtual sun.instrument.TransformerManager$TransformerInfo.transformer:()Ljava/lang/instrument/ClassFileTransformer;
astore 6
start local 6 5: aload 6
aload 1
if_acmpne 8
6: aload 5
aload 2
invokevirtual sun.instrument.TransformerManager$TransformerInfo.setPrefix:(Ljava/lang/String;)V
7: iconst_1
ireturn
end local 6 end local 5 8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 3
arraylength
if_icmplt 3
end local 4 10: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/instrument/TransformerManager;
0 11 1 transformer Ljava/lang/instrument/ClassFileTransformer;
0 11 2 prefix Ljava/lang/String;
1 11 3 transformerList [Lsun/instrument/TransformerManager$TransformerInfo;
2 10 4 x I
4 8 5 transformerInfo Lsun/instrument/TransformerManager$TransformerInfo;
5 8 6 aTransformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
prefix
java.lang.String[] getNativeMethodPrefixes();
descriptor: ()[Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual sun.instrument.TransformerManager.getSnapshotTransformerList:()[Lsun/instrument/TransformerManager$TransformerInfo;
astore 1
start local 1 1: aload 1
arraylength
anewarray java.lang.String
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: sun.instrument.TransformerManager$TransformerInfo[] java.lang.String[] int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 5: aload 2
iload 3
aload 4
invokevirtual sun.instrument.TransformerManager$TransformerInfo.getPrefix:()Ljava/lang/String;
aastore
end local 4 6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 8: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/instrument/TransformerManager;
1 9 1 transformerList [Lsun/instrument/TransformerManager$TransformerInfo;
2 9 2 prefixes [Ljava/lang/String;
3 8 3 x I
5 6 4 transformerInfo Lsun/instrument/TransformerManager$TransformerInfo;
}
SourceFile: "TransformerManager.java"
NestMembers:
sun.instrument.TransformerManager$TransformerInfo
InnerClasses:
private TransformerInfo = sun.instrument.TransformerManager$TransformerInfo of sun.instrument.TransformerManager