abstract class com.oracle.truffle.polyglot.HostClassLoader$Resource
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.polyglot.HostClassLoader$Resource
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$Resource;
abstract java.net.URL getURL();
descriptor: ()Ljava/net/URL;
flags: (0x0400) ACC_ABSTRACT
abstract java.net.URL getOwner();
descriptor: ()Ljava/net/URL;
flags: (0x0400) ACC_ABSTRACT
abstract long getLength();
descriptor: ()J
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
abstract java.io.InputStream getInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws java.io.IOException
byte[] getContent();
descriptor: ()[B
flags: (0x0000)
Code:
stack=4, locals=11, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.polyglot.HostClassLoader$Resource.getLength:()J
lstore 1
start local 1 1: lload 1
ldc 2147483647
lcmp
ifle 3
2: new java.io.IOException
dup
ldc "Invalid class file size."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: long
StackMap stack:
lload 1
ldc -1
lcmp
ifne 7
4: ldc 2147483647
istore 4
start local 4 5: sipush 4096
newarray 8
astore 3
start local 3 6: goto 9
end local 4 end local 3 7: StackMap locals:
StackMap stack:
lload 1
l2i
istore 4
start local 4 8: iload 4
newarray 8
astore 3
start local 3 9: StackMap locals: byte[] int
StackMap stack:
aconst_null
astore 5
aconst_null
astore 6
10: aload 0
invokevirtual com.oracle.truffle.polyglot.HostClassLoader$Resource.getInputStream:()Ljava/io/InputStream;
astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: goto 27
13: StackMap locals: com.oracle.truffle.polyglot.HostClassLoader$Resource long byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream int
StackMap stack:
iload 8
aload 3
arraylength
if_icmpne 18
14: iload 4
iload 8
isub
aload 3
arraylength
iconst_1
iadd
bipush 12
ishl
invokestatic java.lang.Math.min:(II)I
istore 9
start local 9 15: iload 9
ifle 19
16: aload 3
iload 8
iload 9
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 3
17: goto 19
end local 9 18: StackMap locals:
StackMap stack:
aload 3
arraylength
iload 8
isub
istore 9
start local 9 19: StackMap locals: int
StackMap stack:
aload 7
aload 3
iload 8
iload 9
invokevirtual java.io.InputStream.read:([BII)I
istore 10
start local 10 20: iload 10
ifge 26
21: iload 4
ldc 2147483647
if_icmpne 25
22: aload 3
arraylength
iload 8
if_icmpeq 28
23: aload 3
iload 8
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 3
24: goto 28
25: StackMap locals: int
StackMap stack:
new java.io.EOFException
dup
ldc "Unexpected EOF"
invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
iload 8
iload 10
iadd
istore 8
end local 10 end local 9 27: StackMap locals:
StackMap stack:
iload 8
iload 4
if_icmplt 13
28: StackMap locals:
StackMap stack:
aload 3
29: aload 7
ifnull 30
aload 7
invokevirtual java.io.InputStream.close:()V
30: StackMap locals:
StackMap stack: byte[]
areturn
end local 8 StackMap locals: com.oracle.truffle.polyglot.HostClassLoader$Resource long byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
31: astore 5
32: aload 7
ifnull 33
aload 7
invokevirtual java.io.InputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
33: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
34: astore 6
aload 5
ifnonnull 35
aload 6
astore 5
goto 36
StackMap locals:
StackMap stack:
35: aload 5
aload 6
if_acmpeq 36
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
36: aload 5
athrow
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$Resource;
1 37 1 lenl J
6 7 3 res [B
9 37 3 res [B
5 7 4 len I
8 37 4 len I
11 33 7 in Ljava/io/InputStream;
12 31 8 pos I
15 18 9 toRead I
19 27 9 toRead I
20 27 10 read I
Exception table:
from to target type
11 29 31 any
10 30 34 any
31 34 34 any
Exceptions:
throws java.io.IOException
static java.net.URL urlOrNull(java.net.URI);
descriptor: (Ljava/net/URI;)Ljava/net/URL;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
1: areturn
2: StackMap locals:
StackMap stack: java.net.MalformedURLException
pop
3: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 uri Ljava/net/URI;
Exception table:
from to target type
0 1 2 Class java.net.MalformedURLException
MethodParameters:
Name Flags
uri
}
SourceFile: "HostClassLoader.java"
NestHost: com.oracle.truffle.polyglot.HostClassLoader
InnerClasses:
private abstract Resource = com.oracle.truffle.polyglot.HostClassLoader$Resource of com.oracle.truffle.polyglot.HostClassLoader