final class com.oracle.truffle.llvm.parser.macho.Xar$TocParser extends org.xml.sax.helpers.DefaultHandler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.llvm.parser.macho.Xar$TocParser
super_class: org.xml.sax.helpers.DefaultHandler
{
private com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder fileBuilder;
descriptor: Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
flags: (0x0002) ACC_PRIVATE
private java.lang.String lastTag;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.List<com.oracle.truffle.llvm.parser.macho.Xar$XarFile> files;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFile;>;
private static final javax.xml.parsers.SAXParserFactory PARSER_FACTORY;
descriptor: Ljavax/xml/parsers/SAXParserFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic javax.xml.parsers.SAXParserFactory.newInstance:()Ljavax/xml/parsers/SAXParserFactory;
putstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
1: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
ldc "http://javax.xml.XMLConstants/feature/secure-processing"
iconst_1
invokevirtual javax.xml.parsers.SAXParserFactory.setFeature:(Ljava/lang/String;Z)V
2: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
ldc "http://xml.org/sax/features/external-general-entities"
iconst_0
invokevirtual javax.xml.parsers.SAXParserFactory.setFeature:(Ljava/lang/String;Z)V
3: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
ldc "http://xml.org/sax/features/external-parameter-entities"
iconst_0
invokevirtual javax.xml.parsers.SAXParserFactory.setFeature:(Ljava/lang/String;Z)V
4: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
ldc "http://apache.org/xml/features/disallow-doctype-decl"
iconst_1
invokevirtual javax.xml.parsers.SAXParserFactory.setFeature:(Ljava/lang/String;Z)V
5: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
ldc "http://apache.org/xml/features/nonvalidating/load-external-dtd"
iconst_0
invokevirtual javax.xml.parsers.SAXParserFactory.setFeature:(Ljava/lang/String;Z)V
6: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
iconst_0
invokevirtual javax.xml.parsers.SAXParserFactory.setXIncludeAware:(Z)V
7: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
iconst_0
invokevirtual javax.xml.parsers.SAXParserFactory.setNamespaceAware:(Z)V
8: goto 12
StackMap locals:
StackMap stack: java.lang.Exception
9: astore 0
start local 0 10: aload 0
invokevirtual java.lang.Exception.printStackTrace:()V
11: new java.lang.RuntimeException
dup
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 12: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
10 12 0 e Ljava/lang/Exception;
Exception table:
from to target type
1 8 9 Class javax.xml.parsers.ParserConfigurationException
1 8 9 Class org.xml.sax.SAXNotRecognizedException
1 8 9 Class org.xml.sax.SAXNotSupportedException
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.xml.sax.helpers.DefaultHandler.<init>:()V
1: aload 0
aconst_null
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.files:Ljava/util/List;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/llvm/parser/macho/Xar$TocParser;
public void startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
1: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
ifnull 3
2: new com.oracle.truffle.llvm.runtime.except.LLVMParserException
dup
ldc "Only flat xar archives are supported!"
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
new com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder
dup
invokespecial com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.<init>:()V
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
4: goto 7
StackMap locals:
StackMap stack:
5: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
ifnull 7
6: aload 0
aload 3
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.lastTag:Ljava/lang/String;
7: 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 8 0 this Lcom/oracle/truffle/llvm/parser/macho/Xar$TocParser;
0 8 1 namespaceURI Ljava/lang/String;
0 8 2 localName Ljava/lang/String;
0 8 3 qName Ljava/lang/String;
0 8 4 atts Lorg/xml/sax/Attributes;
Exceptions:
throws org.xml.sax.SAXException
MethodParameters:
Name Flags
namespaceURI
localName
qName
atts
public void characters(char[], int, int);
descriptor: ([CII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
ifnull 16
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.lastTag:Ljava/lang/String;
ifnull 16
1: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.lastTag:Ljava/lang/String;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 5
-1362442005: 2
-1106363674: 3
-1019779949: 4
3373707: 5
3530753: 6
default: 16
}
StackMap locals: java.lang.String
StackMap stack:
2: aload 4
ldc "file-type"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 16
StackMap locals:
StackMap stack:
3: aload 4
ldc "length"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 16
StackMap locals:
StackMap stack:
4: aload 4
ldc "offset"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 16
StackMap locals:
StackMap stack:
5: aload 4
ldc "name"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
goto 16
StackMap locals:
StackMap stack:
6: aload 4
ldc "size"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 16
7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
new java.lang.String
dup
aload 1
iload 2
iload 3
invokespecial java.lang.String.<init>:([CII)V
putfield com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.name:Ljava/lang/String;
8: goto 16
9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
new java.lang.String
dup
aload 1
iload 2
iload 3
invokespecial java.lang.String.<init>:([CII)V
putfield com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.fileType:Ljava/lang/String;
10: goto 16
11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
new java.lang.String
dup
aload 1
iload 2
iload 3
invokespecial java.lang.String.<init>:([CII)V
invokestatic java.lang.Long.parseUnsignedLong:(Ljava/lang/String;)J
putfield com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.offset:J
12: goto 16
13: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
new java.lang.String
dup
aload 1
iload 2
iload 3
invokespecial java.lang.String.<init>:([CII)V
invokestatic java.lang.Long.parseUnsignedLong:(Ljava/lang/String;)J
putfield com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.length:J
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
new java.lang.String
dup
aload 1
iload 2
iload 3
invokespecial java.lang.String.<init>:([CII)V
invokestatic java.lang.Long.parseUnsignedLong:(Ljava/lang/String;)J
putfield com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.size:J
16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/llvm/parser/macho/Xar$TocParser;
0 17 1 ch [C
0 17 2 start I
0 17 3 length I
Exceptions:
throws org.xml.sax.SAXException
MethodParameters:
Name Flags
ch
start
length
public void endElement(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
1: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
ifnull 3
2: aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.files:Ljava/util/List;
aload 0
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
invokevirtual com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder.create:()Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFile;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.fileBuilder:Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFileBuilder;
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.lastTag:Ljava/lang/String;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/llvm/parser/macho/Xar$TocParser;
0 6 1 namespaceURI Ljava/lang/String;
0 6 2 localName Ljava/lang/String;
0 6 3 qName Ljava/lang/String;
Exceptions:
throws org.xml.sax.SAXException
MethodParameters:
Name Flags
namespaceURI
localName
qName
private static java.util.List<com.oracle.truffle.llvm.parser.macho.Xar$XarFile> parse(com.oracle.truffle.llvm.parser.filereader.ObjectFileReader, com.oracle.truffle.llvm.parser.macho.Xar$XarHeader);
descriptor: (Lcom/oracle/truffle/llvm/parser/filereader/ObjectFileReader;Lcom/oracle/truffle/llvm/parser/macho/Xar$XarHeader;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.llvm.parser.macho.Xar$XarHeader.getTocComprSize:()J
l2i
istore 2
start local 2 1: aload 1
invokevirtual com.oracle.truffle.llvm.parser.macho.Xar$XarHeader.getTocUncomprSize:()J
l2i
istore 3
start local 3 2: iload 2
newarray 8
astore 4
start local 4 3: aload 0
aload 4
invokevirtual com.oracle.truffle.llvm.parser.filereader.ObjectFileReader.get:([B)V
4: new java.util.zip.Inflater
dup
invokespecial java.util.zip.Inflater.<init>:()V
astore 5
start local 5 5: aload 5
aload 4
iconst_0
iload 2
invokevirtual java.util.zip.Inflater.setInput:([BII)V
6: iload 3
newarray 8
astore 6
start local 6 7: aload 5
aload 6
invokevirtual java.util.zip.Inflater.inflate:([B)I
pop
8: goto 11
StackMap locals: com.oracle.truffle.llvm.parser.filereader.ObjectFileReader com.oracle.truffle.llvm.parser.macho.Xar$XarHeader int int byte[] java.util.zip.Inflater byte[]
StackMap stack: java.util.zip.DataFormatException
9: pop
10: new com.oracle.truffle.llvm.runtime.except.LLVMParserException
dup
ldc "DataFormatException when decompressing xar table of contents!"
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.zip.Inflater.end:()V
12: getstatic com.oracle.truffle.llvm.parser.macho.Xar$TocParser.PARSER_FACTORY:Ljavax/xml/parsers/SAXParserFactory;
invokevirtual javax.xml.parsers.SAXParserFactory.newSAXParser:()Ljavax/xml/parsers/SAXParser;
invokevirtual javax.xml.parsers.SAXParser.getXMLReader:()Lorg/xml/sax/XMLReader;
astore 7
start local 7 13: new com.oracle.truffle.llvm.parser.macho.Xar$TocParser
dup
invokespecial com.oracle.truffle.llvm.parser.macho.Xar$TocParser.<init>:()V
astore 8
start local 8 14: aload 7
aload 8
invokeinterface org.xml.sax.XMLReader.setContentHandler:(Lorg/xml/sax/ContentHandler;)V
15: aload 7
new org.xml.sax.InputSource
dup
new java.io.ByteArrayInputStream
dup
aload 6
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/InputStream;)V
invokeinterface org.xml.sax.XMLReader.parse:(Lorg/xml/sax/InputSource;)V
16: aload 8
getfield com.oracle.truffle.llvm.parser.macho.Xar$TocParser.files:Ljava/util/List;
17: areturn
end local 8 end local 7 18: StackMap locals:
StackMap stack: java.lang.Exception
pop
19: new com.oracle.truffle.llvm.runtime.except.LLVMParserException
dup
ldc "Could not parse xar table of contents xml!"
invokespecial com.oracle.truffle.llvm.runtime.except.LLVMParserException.<init>:(Ljava/lang/String;)V
athrow
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 20 0 data Lcom/oracle/truffle/llvm/parser/filereader/ObjectFileReader;
0 20 1 header Lcom/oracle/truffle/llvm/parser/macho/Xar$XarHeader;
1 20 2 comprSize I
2 20 3 uncomprSize I
3 20 4 compressedData [B
5 20 5 decompresser Ljava/util/zip/Inflater;
7 20 6 uncompressedData [B
13 18 7 xmlReader Lorg/xml/sax/XMLReader;
14 18 8 parser Lcom/oracle/truffle/llvm/parser/macho/Xar$TocParser;
Exception table:
from to target type
7 8 9 Class java.util.zip.DataFormatException
12 17 18 Class org.xml.sax.SAXException
12 17 18 Class java.io.IOException
12 17 18 Class javax.xml.parsers.ParserConfigurationException
Signature: (Lcom/oracle/truffle/llvm/parser/filereader/ObjectFileReader;Lcom/oracle/truffle/llvm/parser/macho/Xar$XarHeader;)Ljava/util/List<Lcom/oracle/truffle/llvm/parser/macho/Xar$XarFile;>;
MethodParameters:
Name Flags
data
header
}
SourceFile: "Xar.java"
NestHost: com.oracle.truffle.llvm.parser.macho.Xar
InnerClasses:
private final TocParser = com.oracle.truffle.llvm.parser.macho.Xar$TocParser of com.oracle.truffle.llvm.parser.macho.Xar
private final XarFile = com.oracle.truffle.llvm.parser.macho.Xar$XarFile of com.oracle.truffle.llvm.parser.macho.Xar
private final XarFileBuilder = com.oracle.truffle.llvm.parser.macho.Xar$XarFileBuilder of com.oracle.truffle.llvm.parser.macho.Xar
public final XarHeader = com.oracle.truffle.llvm.parser.macho.Xar$XarHeader of com.oracle.truffle.llvm.parser.macho.Xar