public abstract class com.sun.tools.javah.Gen
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.tools.javah.Gen
super_class: java.lang.Object
{
protected java.lang.String lineSep;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected javax.annotation.processing.ProcessingEnvironment processingEnvironment;
descriptor: Ljavax/annotation/processing/ProcessingEnvironment;
flags: (0x0004) ACC_PROTECTED
protected javax.lang.model.util.Types types;
descriptor: Ljavax/lang/model/util/Types;
flags: (0x0004) ACC_PROTECTED
protected javax.lang.model.util.Elements elems;
descriptor: Ljavax/lang/model/util/Elements;
flags: (0x0004) ACC_PROTECTED
protected com.sun.tools.javah.Mangle mangler;
descriptor: Lcom/sun/tools/javah/Mangle;
flags: (0x0004) ACC_PROTECTED
protected com.sun.tools.javah.Util util;
descriptor: Lcom/sun/tools/javah/Util;
flags: (0x0004) ACC_PROTECTED
protected java.util.Set<javax.lang.model.element.TypeElement> classes;
descriptor: Ljava/util/Set;
flags: (0x0004) ACC_PROTECTED
Signature: Ljava/util/Set<Ljavax/lang/model/element/TypeElement;>;
private static final boolean isWindows;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected javax.tools.JavaFileManager fileManager;
descriptor: Ljavax/tools/JavaFileManager;
flags: (0x0004) ACC_PROTECTED
protected javax.tools.JavaFileObject outFile;
descriptor: Ljavax/tools/JavaFileObject;
flags: (0x0004) ACC_PROTECTED
protected boolean force;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "Windows"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
1: putstatic com.sun.tools.javah.Gen.isWindows:Z
2: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.sun.tools.javah.Util);
descriptor: (Lcom/sun/tools/javah/Util;)V
flags: (0x0004) ACC_PROTECTED
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
ldc "line.separator"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
putfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
2: aload 0
iconst_0
putfield com.sun.tools.javah.Gen.force:Z
3: aload 0
aload 1
putfield com.sun.tools.javah.Gen.util:Lcom/sun/tools/javah/Util;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javah/Gen;
0 5 1 util Lcom/sun/tools/javah/Util;
MethodParameters:
Name Flags
util
protected abstract void write(java.io.OutputStream, javax.lang.model.element.TypeElement);
descriptor: (Ljava/io/OutputStream;Ljavax/lang/model/element/TypeElement;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws com.sun.tools.javah.Util$Exit
MethodParameters:
Name Flags
o
clazz
protected abstract java.lang.String getIncludes();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public void setFileManager(javax.tools.JavaFileManager);
descriptor: (Ljavax/tools/JavaFileManager;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.sun.tools.javah.Gen.fileManager:Ljavax/tools/JavaFileManager;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javah/Gen;
0 2 1 fm Ljavax/tools/JavaFileManager;
MethodParameters:
Name Flags
fm
public void setOutFile(javax.tools.JavaFileObject);
descriptor: (Ljavax/tools/JavaFileObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.sun.tools.javah.Gen.outFile:Ljavax/tools/JavaFileObject;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javah/Gen;
0 2 1 outFile Ljavax/tools/JavaFileObject;
MethodParameters:
Name Flags
outFile
public void setClasses(java.util.Set<javax.lang.model.element.TypeElement>);
descriptor: (Ljava/util/Set;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.sun.tools.javah.Gen.classes:Ljava/util/Set;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javah/Gen;
0 2 1 classes Ljava/util/Set<Ljavax/lang/model/element/TypeElement;>;
Signature: (Ljava/util/Set<Ljavax/lang/model/element/TypeElement;>;)V
MethodParameters:
Name Flags
classes
void setProcessingEnvironment(javax.annotation.processing.ProcessingEnvironment);
descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.sun.tools.javah.Gen.processingEnvironment:Ljavax/annotation/processing/ProcessingEnvironment;
1: aload 0
aload 1
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
putfield com.sun.tools.javah.Gen.elems:Ljavax/lang/model/util/Elements;
2: aload 0
aload 1
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
putfield com.sun.tools.javah.Gen.types:Ljavax/lang/model/util/Types;
3: aload 0
new com.sun.tools.javah.Mangle
dup
aload 0
getfield com.sun.tools.javah.Gen.elems:Ljavax/lang/model/util/Elements;
aload 0
getfield com.sun.tools.javah.Gen.types:Ljavax/lang/model/util/Types;
invokespecial com.sun.tools.javah.Mangle.<init>:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;)V
putfield com.sun.tools.javah.Gen.mangler:Lcom/sun/tools/javah/Mangle;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javah/Gen;
0 5 1 pEnv Ljavax/annotation/processing/ProcessingEnvironment;
MethodParameters:
Name Flags
pEnv
public void setForce(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield com.sun.tools.javah.Gen.force:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javah/Gen;
0 2 1 state Z
MethodParameters:
Name Flags
state
protected java.io.PrintWriter wrapWriter(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/PrintWriter;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new java.io.PrintWriter
dup
new java.io.OutputStreamWriter
dup
aload 1
ldc "ISO8859_1"
invokespecial java.io.OutputStreamWriter.<init>:(Ljava/io/OutputStream;Ljava/lang/String;)V
iconst_1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
1: areturn
2: StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
pop
3: aload 0
getfield com.sun.tools.javah.Gen.util:Lcom/sun/tools/javah/Util;
ldc "encoding.iso8859_1.not.found"
invokevirtual com.sun.tools.javah.Util.bug:(Ljava/lang/String;)V
4: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javah/Gen;
0 5 1 o Ljava/io/OutputStream;
Exception table:
from to target type
0 1 2 Class java.io.UnsupportedEncodingException
Exceptions:
throws com.sun.tools.javah.Util$Exit
MethodParameters:
Name Flags
o
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javah.Gen.outFile:Ljavax/tools/JavaFileObject;
ifnull 9
1: new java.io.ByteArrayOutputStream
dup
sipush 8192
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 1
start local 1 2: aload 0
aload 1
invokevirtual com.sun.tools.javah.Gen.writeFileTop:(Ljava/io/OutputStream;)V
3: aload 0
getfield com.sun.tools.javah.Gen.classes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: com.sun.tools.javah.Gen java.io.ByteArrayOutputStream top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 2
start local 2 5: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javah.Gen.write:(Ljava/io/OutputStream;Ljavax/lang/model/element/TypeElement;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
aload 1
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
aload 0
getfield com.sun.tools.javah.Gen.outFile:Ljavax/tools/JavaFileObject;
invokevirtual com.sun.tools.javah.Gen.writeIfChanged:([BLjavax/tools/FileObject;)V
end local 1 8: goto 16
9: StackMap locals: com.sun.tools.javah.Gen
StackMap stack:
aload 0
getfield com.sun.tools.javah.Gen.classes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 15
StackMap locals: com.sun.tools.javah.Gen top java.util.Iterator
StackMap stack:
10: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 1
start local 1 11: new java.io.ByteArrayOutputStream
dup
sipush 8192
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 3
start local 3 12: aload 0
aload 3
invokevirtual com.sun.tools.javah.Gen.writeFileTop:(Ljava/io/OutputStream;)V
13: aload 0
aload 3
aload 1
invokevirtual com.sun.tools.javah.Gen.write:(Ljava/io/OutputStream;Ljavax/lang/model/element/TypeElement;)V
14: aload 0
aload 3
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
aload 0
aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokevirtual com.sun.tools.javah.Gen.getFileObject:(Ljava/lang/CharSequence;)Ljavax/tools/FileObject;
invokevirtual com.sun.tools.javah.Gen.writeIfChanged:([BLjavax/tools/FileObject;)V
end local 3 end local 1 15: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
16: StackMap locals: com.sun.tools.javah.Gen
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/tools/javah/Gen;
2 8 1 bout Ljava/io/ByteArrayOutputStream;
5 6 2 t Ljavax/lang/model/element/TypeElement;
11 15 1 t Ljavax/lang/model/element/TypeElement;
12 15 3 bout Ljava/io/ByteArrayOutputStream;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException, com.sun.tools.javah.Util$Exit
private void writeIfChanged(byte[], javax.tools.FileObject);
descriptor: ([BLjavax/tools/FileObject;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: ldc "[No need to update file "
astore 4
start local 4 2: aload 0
getfield com.sun.tools.javah.Gen.force:Z
ifeq 6
3: iconst_1
istore 3
4: ldc "[Forcefully writing file "
astore 4
5: goto 15
6: StackMap locals: int java.lang.String
StackMap stack:
aload 2
invokeinterface javax.tools.FileObject.openInputStream:()Ljava/io/InputStream;
astore 5
start local 5 7: aload 0
aload 5
invokevirtual com.sun.tools.javah.Gen.readBytes:(Ljava/io/InputStream;)[B
astore 6
start local 6 8: aload 6
aload 1
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 15
9: iconst_1
istore 3
10: ldc "[Overwriting file "
astore 4
11: goto 15
end local 6 end local 5 StackMap locals:
StackMap stack: java.io.IOException
12: pop
13: iconst_1
istore 3
14: ldc "[Creating file "
astore 4
15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javah.Gen.util:Lcom/sun/tools/javah/Util;
getfield com.sun.tools.javah.Util.verbose:Z
ifeq 17
16: aload 0
getfield com.sun.tools.javah.Gen.util:Lcom/sun/tools/javah/Util;
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.sun.tools.javah.Util.log:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
iload 3
ifeq 21
18: aload 2
invokeinterface javax.tools.FileObject.openOutputStream:()Ljava/io/OutputStream;
astore 5
start local 5 19: aload 5
aload 1
invokevirtual java.io.OutputStream.write:([B)V
20: aload 5
invokevirtual java.io.OutputStream.close:()V
end local 5 21: StackMap locals:
StackMap stack:
return
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 Lcom/sun/tools/javah/Gen;
0 22 1 b [B
0 22 2 file Ljavax/tools/FileObject;
1 22 3 mustWrite Z
2 22 4 event Ljava/lang/String;
7 12 5 in Ljava/io/InputStream;
8 12 6 a [B
19 21 5 out Ljava/io/OutputStream;
Exception table:
from to target type
6 11 12 Class java.io.FileNotFoundException
6 11 12 Class java.nio.file.NoSuchFileException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
file
protected byte[] readBytes(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)[B
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.InputStream.available:()I
iconst_1
iadd
newarray 8
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 6
start local 4 3: StackMap locals: byte[] int int
StackMap stack:
iload 3
iload 4
iadd
istore 3
4: iload 3
aload 2
arraylength
if_icmpne 6
5: aload 2
aload 2
arraylength
iconst_2
imul
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 2
end local 4 6: StackMap locals:
StackMap stack:
aload 1
aload 2
iload 3
aload 2
arraylength
iload 3
isub
invokevirtual java.io.InputStream.read:([BII)I
dup
istore 4
start local 4 7: iconst_m1
if_icmpne 3
8: aload 2
iload 3
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
9: aload 1
invokevirtual java.io.InputStream.close:()V
10: aload 6
areturn
end local 4 end local 3 end local 2 11: StackMap locals: com.sun.tools.javah.Gen java.io.InputStream
StackMap stack: java.lang.Throwable
astore 5
12: aload 1
invokevirtual java.io.InputStream.close:()V
13: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/javah/Gen;
0 14 1 in Ljava/io/InputStream;
1 11 2 array [B
2 11 3 offset I
3 6 4 n I
7 11 4 n I
Exception table:
from to target type
0 9 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
protected java.lang.String defineForStatic(javax.lang.model.element.TypeElement, javax.lang.model.element.VariableElement);
descriptor: (Ljavax/lang/model/element/TypeElement;Ljavax/lang/model/element/VariableElement;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
astore 3
start local 3 1: aload 2
invokeinterface javax.lang.model.element.VariableElement.getSimpleName:()Ljavax/lang/model/element/Name;
astore 4
start local 4 2: aload 0
getfield com.sun.tools.javah.Gen.mangler:Lcom/sun/tools/javah/Mangle;
aload 3
iconst_1
invokevirtual com.sun.tools.javah.Mangle.mangle:(Ljava/lang/CharSequence;I)Ljava/lang/String;
astore 5
start local 5 3: aload 0
getfield com.sun.tools.javah.Gen.mangler:Lcom/sun/tools/javah/Mangle;
aload 4
iconst_2
invokevirtual com.sun.tools.javah.Mangle.mangle:(Ljava/lang/CharSequence;I)Ljava/lang/String;
astore 6
start local 6 4: aload 2
invokeinterface javax.lang.model.element.VariableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
5: aload 0
getfield com.sun.tools.javah.Gen.util:Lcom/sun/tools/javah/Util;
ldc "tried.to.define.non.static"
invokevirtual com.sun.tools.javah.Util.bug:(Ljava/lang/String;)V
6: StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.TypeElement javax.lang.model.element.VariableElement java.lang.CharSequence java.lang.CharSequence java.lang.String java.lang.String
StackMap stack:
aload 2
invokeinterface javax.lang.model.element.VariableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 51
7: aconst_null
astore 7
start local 7 8: aload 2
invokeinterface javax.lang.model.element.VariableElement.getConstantValue:()Ljava/lang/Object;
astore 7
9: aload 7
ifnull 51
10: aconst_null
astore 8
start local 8 11: aload 7
instanceof java.lang.Integer
ifne 14
12: aload 7
instanceof java.lang.Byte
ifne 14
13: aload 7
instanceof java.lang.Short
ifeq 16
14: StackMap locals: java.lang.Object java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "L"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
15: goto 45
StackMap locals:
StackMap stack:
16: aload 7
instanceof java.lang.Boolean
ifeq 21
17: aload 7
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 18
ldc "1L"
goto 19
StackMap locals:
StackMap stack:
18: ldc "0L"
StackMap locals:
StackMap stack: java.lang.String
19: astore 8
20: goto 45
StackMap locals:
StackMap stack:
21: aload 7
instanceof java.lang.Character
ifeq 25
22: aload 7
checkcast java.lang.Character
astore 9
start local 9 23: new java.lang.StringBuilder
dup
aload 9
invokevirtual java.lang.Character.charValue:()C
ldc 65535
iand
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "L"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
end local 9 24: goto 45
StackMap locals:
StackMap stack:
25: aload 7
instanceof java.lang.Long
ifeq 30
26: getstatic com.sun.tools.javah.Gen.isWindows:Z
ifeq 28
27: new java.lang.StringBuilder
dup
aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "i64"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
goto 45
28: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "LL"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
29: goto 45
StackMap locals:
StackMap stack:
30: aload 7
instanceof java.lang.Float
ifeq 38
31: aload 7
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
fstore 9
start local 9 32: fload 9
invokestatic java.lang.Float.isInfinite:(F)Z
ifeq 36
33: new java.lang.StringBuilder
dup
fload 9
fconst_0
fcmpg
ifge 34
ldc "-"
goto 35
StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.TypeElement javax.lang.model.element.VariableElement java.lang.CharSequence java.lang.CharSequence java.lang.String java.lang.String java.lang.Object java.lang.String float
StackMap stack: new 33 new 33
34: ldc ""
StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.TypeElement javax.lang.model.element.VariableElement java.lang.CharSequence java.lang.CharSequence java.lang.String java.lang.String java.lang.Object java.lang.String float
StackMap stack: new 33 new 33 java.lang.String
35: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Inff"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
goto 45
36: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "f"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
end local 9 37: goto 45
StackMap locals:
StackMap stack:
38: aload 7
instanceof java.lang.Double
ifeq 45
39: aload 7
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
dstore 9
start local 9 40: dload 9
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 44
41: new java.lang.StringBuilder
dup
dload 9
dconst_0
dcmpg
ifge 42
ldc "-"
goto 43
StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.TypeElement javax.lang.model.element.VariableElement java.lang.CharSequence java.lang.CharSequence java.lang.String java.lang.String java.lang.Object java.lang.String double
StackMap stack: new 41 new 41
42: ldc ""
StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.TypeElement javax.lang.model.element.VariableElement java.lang.CharSequence java.lang.CharSequence java.lang.String java.lang.String java.lang.Object java.lang.String double
StackMap stack: new 41 new 41 java.lang.String
43: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "InfD"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
goto 45
44: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 8
end local 9 45: StackMap locals:
StackMap stack:
aload 8
ifnull 51
46: new java.lang.StringBuilder
dup
ldc "#undef "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 9
start local 9 47: aload 9
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
48: aload 9
ldc "#define "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
49: aload 9
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
aload 9
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
50: aload 9
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 9 end local 8 end local 7 51: StackMap locals:
StackMap stack:
aconst_null
areturn
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 52 0 this Lcom/sun/tools/javah/Gen;
0 52 1 c Ljavax/lang/model/element/TypeElement;
0 52 2 f Ljavax/lang/model/element/VariableElement;
1 52 3 cnamedoc Ljava/lang/CharSequence;
2 52 4 fnamedoc Ljava/lang/CharSequence;
3 52 5 cname Ljava/lang/String;
4 52 6 fname Ljava/lang/String;
8 51 7 value Ljava/lang/Object;
11 51 8 constString Ljava/lang/String;
23 24 9 ch Ljava/lang/Character;
32 37 9 fv F
40 45 9 d D
47 51 9 s Ljava/lang/StringBuilder;
Exceptions:
throws com.sun.tools.javah.Util$Exit
MethodParameters:
Name Flags
c
f
protected java.lang.String cppGuardBegin();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "#ifdef __cplusplus"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "extern \"C\" {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "#endif"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javah/Gen;
protected java.lang.String cppGuardEnd();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "#ifdef __cplusplus"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "#endif"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javah/Gen;
protected java.lang.String guardBegin(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "/* Header for class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " */"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc "#ifndef _Included_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "#define _Included_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javah/Gen;
0 4 1 cname Ljava/lang/String;
MethodParameters:
Name Flags
cname
protected java.lang.String guardEnd(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc "#endif"
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javah/Gen;
0 1 1 cname Ljava/lang/String;
MethodParameters:
Name Flags
cname
protected void writeFileTop(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.javah.Gen.wrapWriter:(Ljava/io/OutputStream;)Ljava/io/PrintWriter;
astore 2
start local 2 1: aload 2
new java.lang.StringBuilder
dup
ldc "/* DO NOT EDIT THIS FILE - it is machine generated */"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.tools.javah.Gen.lineSep:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
invokevirtual com.sun.tools.javah.Gen.getIncludes:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javah/Gen;
0 5 1 o Ljava/io/OutputStream;
1 5 2 pw Ljava/io/PrintWriter;
Exceptions:
throws com.sun.tools.javah.Util$Exit
MethodParameters:
Name Flags
o
protected java.lang.String baseFileName(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javah.Gen.mangler:Lcom/sun/tools/javah/Mangle;
aload 1
iconst_1
invokevirtual com.sun.tools.javah.Mangle.mangle:(Ljava/lang/CharSequence;I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javah/Gen;
0 1 1 className Ljava/lang/CharSequence;
MethodParameters:
Name Flags
className
protected javax.tools.FileObject getFileObject(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)Ljavax/tools/FileObject;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 0
aload 1
invokevirtual com.sun.tools.javah.Gen.baseFileName:(Ljava/lang/CharSequence;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.sun.tools.javah.Gen.getFileSuffix:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield com.sun.tools.javah.Gen.fileManager:Ljavax/tools/JavaFileManager;
getstatic javax.tools.StandardLocation.SOURCE_OUTPUT:Ljavax/tools/StandardLocation;
ldc ""
aload 2
aconst_null
invokeinterface javax.tools.JavaFileManager.getFileForOutput:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljava/lang/String;Ljavax/tools/FileObject;)Ljavax/tools/FileObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javah/Gen;
0 2 1 className Ljava/lang/CharSequence;
1 2 2 name Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
className
protected java.lang.String getFileSuffix();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc ".h"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javah/Gen;
java.util.List<javax.lang.model.element.VariableElement> getAllFields(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)Ljava/util/List;
flags: (0x0000)
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: new java.util.Stack
dup
invokespecial java.util.Stack.<init>:()V
astore 4
start local 4 3: aload 1
astore 3
4: StackMap locals: java.util.List javax.lang.model.element.TypeElement java.util.Stack
StackMap stack:
aload 4
aload 3
invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.sun.tools.javah.Gen.types:Ljavax/lang/model/util/Types;
aload 3
invokeinterface javax.lang.model.element.TypeElement.getSuperclass:()Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.util.Types.asElement:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
astore 5
start local 5 6: aload 5
ifnonnull 8
7: goto 12
8: StackMap locals: javax.lang.model.element.TypeElement
StackMap stack:
aload 5
astore 3
end local 5 9: goto 4
10: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 3
11: aload 2
aload 3
invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.fieldsIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
12: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.Stack.empty:()Z
ifeq 10
13: aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/javah/Gen;
0 14 1 subclazz Ljavax/lang/model/element/TypeElement;
1 14 2 fields Ljava/util/List<Ljavax/lang/model/element/VariableElement;>;
2 14 3 cd Ljavax/lang/model/element/TypeElement;
3 14 4 s Ljava/util/Stack<Ljavax/lang/model/element/TypeElement;>;
6 9 5 c Ljavax/lang/model/element/TypeElement;
Signature: (Ljavax/lang/model/element/TypeElement;)Ljava/util/List<Ljavax/lang/model/element/VariableElement;>;
MethodParameters:
Name Flags
subclazz
java.lang.String signature(javax.lang.model.element.ExecutableElement);
descriptor: (Ljavax/lang/model/element/ExecutableElement;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: ldc ""
astore 3
start local 3 2: aload 1
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.sun.tools.javah.Gen javax.lang.model.element.ExecutableElement java.lang.StringBuilder java.lang.String top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.VariableElement
astore 4
start local 4 4: aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 2
aload 0
getfield com.sun.tools.javah.Gen.types:Ljavax/lang/model/util/Types;
aload 4
invokeinterface javax.lang.model.element.VariableElement.asType:()Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: ldc ","
astore 3
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 2
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/javah/Gen;
0 10 1 e Ljavax/lang/model/element/ExecutableElement;
1 10 2 sb Ljava/lang/StringBuilder;
2 10 3 sep Ljava/lang/String;
4 7 4 p Ljavax/lang/model/element/VariableElement;
MethodParameters:
Name Flags
e
}
SourceFile: "Gen.java"
InnerClasses:
public Exit = com.sun.tools.javah.Util$Exit of com.sun.tools.javah.Util
public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager