public class org.jruby.ir.persistence.IRWriterStream implements org.jruby.ir.persistence.IRWriterEncoder, org.jruby.ir.persistence.IRPersistenceValues
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.persistence.IRWriterStream
super_class: java.lang.Object
{
private final java.util.Map<org.jruby.ir.IRScope, java.lang.Integer> scopeInstructionOffsets;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/jruby/ir/IRScope;Ljava/lang/Integer;>;
private final java.util.Map<org.jruby.ir.IRScope, java.lang.Integer> scopePoolOffsets;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lorg/jruby/ir/IRScope;Ljava/lang/Integer;>;
private final java.nio.ByteBuffer buf;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.OutputStream stream;
descriptor: Ljava/io/OutputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.persistence.IRWriterAnalyzer analyzer;
descriptor: Lorg/jruby/ir/persistence/IRWriterAnalyzer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Map<org.jruby.RubySymbol, java.lang.Integer> constantMap;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lorg/jruby/RubySymbol;Ljava/lang/Integer;>;
int ;
descriptor: I
flags: (0x0000)
public void <init>(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.jruby.ir.persistence.IRWriterStream.scopeInstructionOffsets:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.jruby.ir.persistence.IRWriterStream.scopePoolOffsets:Ljava/util/Map;
3: aload 0
ldc 2097152
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
4: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
5: aload 0
iconst_m1
putfield org.jruby.ir.persistence.IRWriterStream.headersOffset:I
6: aload 0
aload 1
putfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
7: aload 0
new org.jruby.ir.persistence.IRWriterAnalyzer
dup
invokespecial org.jruby.ir.persistence.IRWriterAnalyzer.<init>:()V
putfield org.jruby.ir.persistence.IRWriterStream.analyzer:Lorg/jruby/ir/persistence/IRWriterAnalyzer;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 9 1 stream Ljava/io/OutputStream;
MethodParameters:
Name Flags
stream
public void <init>(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.io.FileOutputStream
dup
aload 1
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
invokespecial org.jruby.ir.persistence.IRWriterStream.<init>:(Ljava/io/OutputStream;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 file Ljava/io/File;
Exceptions:
throws java.io.FileNotFoundException
MethodParameters:
Name Flags
file
public void addScopeInstructionOffset(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.scopeInstructionOffsets:Ljava/util/Map;
aload 1
aload 0
invokevirtual org.jruby.ir.persistence.IRWriterStream.offset:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
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 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
private int offset();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
bipush 8
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/persistence/IRWriterStream;
public int getScopeInstructionOffset(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.scopeInstructionOffsets:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 1 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
public void encode(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
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iload 1
ifeq 1
bipush 116
goto 2
StackMap locals:
StackMap stack: java.nio.ByteBuffer
1: bipush 102
StackMap locals: org.jruby.ir.persistence.IRWriterStream int
StackMap stack: java.nio.ByteBuffer int
2: invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 4 1 value Z
MethodParameters:
Name Flags
value
public void encode(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iload 1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value B
MethodParameters:
Name Flags
value
public void encode(char);
descriptor: (C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iload 1
invokevirtual java.nio.ByteBuffer.putChar:(C)Ljava/nio/ByteBuffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value C
MethodParameters:
Name Flags
value
public void encode(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 3
iload 1
bipush 127
if_icmpgt 3
1: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iload 1
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iconst_m1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
4: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iload 1
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
pop
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 6 1 value I
MethodParameters:
Name Flags
value
public void encode(int[]);
descriptor: ([I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
iaload
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 7 1 value [I
2 6 2 i I
MethodParameters:
Name Flags
value
public void encode(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
iflt 3
lload 1
ldc 127
lcmp
ifgt 3
1: aload 0
lload 1
l2i
i2b
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(B)V
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
iconst_m1
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
4: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
lload 1
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 6 1 value J
MethodParameters:
Name Flags
value
public void encode(float);
descriptor: (F)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
fload 1
invokevirtual java.nio.ByteBuffer.putFloat:(F)Ljava/nio/ByteBuffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value F
MethodParameters:
Name Flags
value
public void encode(java.util.EnumSet<org.jruby.ir.IRFlags>);
descriptor: (Ljava/util/EnumSet;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.jruby.ir.persistence.IRWriterStream java.util.EnumSet int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.IRFlags
astore 3
start local 3 3: iload 2
iconst_1
aload 3
invokevirtual org.jruby.ir.IRFlags.ordinal:()I
ishl
ior
istore 2
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
iload 2
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 7 1 values Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
1 7 2 value I
3 4 3 flags Lorg/jruby/ir/IRFlags;
Signature: (Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;)V
MethodParameters:
Name Flags
values
public void encode(double);
descriptor: (D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
dload 1
invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value D
MethodParameters:
Name Flags
value
public void encode(org.jruby.util.ByteList);
descriptor: (Lorg/jruby/util/ByteList;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.bytes:()[B
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:([B)V
1: aload 0
aload 1
invokevirtual org.jruby.util.ByteList.getEncoding:()Lorg/jcodings/Encoding;
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(Lorg/jcodings/Encoding;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 3 1 value Lorg/jruby/util/ByteList;
MethodParameters:
Name Flags
value
public void encode(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 3 1 bytes [B
MethodParameters:
Name Flags
bytes
public void encode(org.jcodings.Encoding);
descriptor: (Lorg/jcodings/Encoding;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jcodings.Encoding.getName:()[B
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:([B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 encoding Lorg/jcodings/Encoding;
MethodParameters:
Name Flags
encoding
public void encode(org.jruby.RubySymbol);
descriptor: (Lorg/jruby/RubySymbol;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 1: aload 2
ifnull 4
2: aload 0
aload 2
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
3: goto 7
4: StackMap locals: java.lang.Integer
StackMap stack:
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
istore 3
start local 3 5: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
aload 1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
iload 3
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 8 1 symbol Lorg/jruby/RubySymbol;
1 8 2 constantIndex Ljava/lang/Integer;
5 7 3 index I
MethodParameters:
Name Flags
symbol
public void encodeRaw(org.jruby.RubySymbol);
descriptor: (Lorg/jruby/RubySymbol;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
iconst_m1
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(Lorg/jruby/util/ByteList;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 5 1 symbol Lorg/jruby/RubySymbol;
MethodParameters:
Name Flags
symbol
public void encode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
iconst_m1
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
2: goto 6
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.getBytes:()[B
astore 2
start local 2 4: aload 0
aload 2
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
5: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 7 1 value Ljava/lang/String;
4 6 2 bytes [B
MethodParameters:
Name Flags
value
public void encode(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: aload 0
iconst_0
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 1
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
4: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 9
StackMap locals: org.jruby.ir.persistence.IRWriterStream java.lang.String[] top int int java.lang.String[]
StackMap stack:
5: aload 5
iload 3
aaload
astore 2
start local 2 6: aload 0
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
7: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
aload 2
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
end local 2 8: iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 4
if_icmplt 5
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 11 1 values [Ljava/lang/String;
6 8 2 value Ljava/lang/String;
MethodParameters:
Name Flags
values
public void encode(org.jruby.ir.operands.Operand);
descriptor: (Lorg/jruby/ir/operands/Operand;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.jruby.ir.operands.Operand.encode:(Lorg/jruby/ir/persistence/IRWriterEncoder;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 operand Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
operand
public void encode(org.jruby.ir.operands.Operand[]);
descriptor: ([Lorg/jruby/ir/operands/Operand;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.jruby.ir.persistence.IRWriterStream org.jruby.ir.operands.Operand[] top int int org.jruby.ir.operands.Operand[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 0
aload 2
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(Lorg/jruby/ir/operands/Operand;)V
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 7 1 operands [Lorg/jruby/ir/operands/Operand;
3 4 2 arg Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
operands
public void encode(org.jruby.ir.instructions.Instr);
descriptor: (Lorg/jruby/ir/instructions/Instr;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.jruby.ir.instructions.Instr.encode:(Lorg/jruby/ir/persistence/IRWriterEncoder;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 instr Lorg/jruby/ir/instructions/Instr;
MethodParameters:
Name Flags
instr
public void encode(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.analyzer:Lorg/jruby/ir/persistence/IRWriterAnalyzer;
aload 1
invokevirtual org.jruby.ir.persistence.IRWriterAnalyzer.getScopeID:(Lorg/jruby/ir/IRScope;)I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
value
public void encode(org.jruby.ir.IRScopeType);
descriptor: (Lorg/jruby/ir/IRScopeType;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.ir.IRScopeType.ordinal:()I
i2b
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value Lorg/jruby/ir/IRScopeType;
MethodParameters:
Name Flags
value
public void encode(org.jruby.runtime.Signature);
descriptor: (Lorg/jruby/runtime/Signature;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
getstatic org.jruby.runtime.Signature.NO_ARGUMENTS:Lorg/jruby/runtime/Signature;
astore 1
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.jruby.runtime.Signature.encode:()J
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(J)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 3 1 signature Lorg/jruby/runtime/Signature;
MethodParameters:
Name Flags
signature
public void encode(org.jruby.runtime.RubyEvent);
descriptor: (Lorg/jruby/runtime/RubyEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.runtime.RubyEvent.ordinal:()I
i2b
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 event Lorg/jruby/runtime/RubyEvent;
MethodParameters:
Name Flags
event
public void encode(org.jruby.parser.StaticScope$Type);
descriptor: (Lorg/jruby/parser/StaticScope$Type;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.parser.StaticScope$Type.ordinal:()I
i2b
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value Lorg/jruby/parser/StaticScope$Type;
MethodParameters:
Name Flags
value
public void encode(org.jruby.ir.Operation);
descriptor: (Lorg/jruby/ir/Operation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.ir.Operation.ordinal:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value Lorg/jruby/ir/Operation;
MethodParameters:
Name Flags
value
public void encode(org.jruby.ir.operands.OperandType);
descriptor: (Lorg/jruby/ir/operands/OperandType;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.ir.operands.OperandType.ordinal:()I
i2b
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 2 1 value Lorg/jruby/ir/operands/OperandType;
MethodParameters:
Name Flags
value
public void (org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 1 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
public void (org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
invokevirtual org.jruby.ir.persistence.IRWriterStream.getScopeInstructionOffset:(Lorg/jruby/ir/IRScope;)I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
1: aload 0
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.scopePoolOffsets:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 3 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
public void startEncodingScopeInstrs(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
1: aload 0
aload 1
invokevirtual org.jruby.ir.persistence.IRWriterStream.addScopeInstructionOffset:(Lorg/jruby/ir/IRScope;)V
2: aload 0
aload 1
invokevirtual org.jruby.ir.IRScope.getInterpreterContext:()Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.ir.interpreter.InterpreterContext.getInstructions:()[Lorg/jruby/ir/instructions/Instr;
arraylength
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 4 1 scope Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
scope
public void endEncodingScopeInstrs(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.scopePoolOffsets:Ljava/util/Map;
aload 1
aload 0
invokevirtual org.jruby.ir.persistence.IRWriterStream.offset:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new java.util.LinkedList
dup
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.constantMap:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 2: aload 2
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/util/Map$Entry.getValue()Ljava/lang/Object; (9 itf)
(Ljava/util/Map$Entry;)Ljava/lang/Integer;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
3: aload 0
aload 2
invokeinterface java.util.List.size:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: org.jruby.ir.persistence.IRWriterStream org.jruby.ir.IRScope java.util.List top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 6: aload 0
aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.jruby.RubySymbol
invokevirtual org.jruby.ir.persistence.IRWriterStream.encodeRaw:(Lorg/jruby/RubySymbol;)V
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 9 1 scope Lorg/jruby/ir/IRScope;
2 9 2 list Ljava/util/List<Ljava/util/Map$Entry<Lorg/jruby/RubySymbol;Ljava/lang/Integer;>;>;
6 7 3 entry Ljava/util/Map$Entry<Lorg/jruby/RubySymbol;Ljava/lang/Integer;>;
MethodParameters:
Name Flags
scope
public void (org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.jruby.ir.persistence.IRWriterStream.offset:()I
putfield org.jruby.ir.persistence.IRWriterStream.headersOffset:I
1: aload 0
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.analyzer:Lorg/jruby/ir/persistence/IRWriterAnalyzer;
invokevirtual org.jruby.ir.persistence.IRWriterAnalyzer.getScopeCount:()I
invokevirtual org.jruby.ir.persistence.IRWriterStream.encode:(I)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 3 1 script Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
script
public void (org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 1 1 script Lorg/jruby/ir/IRScope;
MethodParameters:
Name Flags
script
public void startEncoding(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.analyzer:Lorg/jruby/ir/persistence/IRWriterAnalyzer;
aload 1
invokestatic org.jruby.ir.persistence.IRWriter.persist:(Lorg/jruby/ir/persistence/IRWriterEncoder;Lorg/jruby/ir/IRScope;)V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 4 1 script Lorg/jruby/ir/IRScope;
Exception table:
from to target type
0 1 2 Class java.io.IOException
MethodParameters:
Name Flags
script
public void endEncoding(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
iconst_4
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
iconst_2
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
invokevirtual java.io.OutputStream.write:([B)V
1: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
iconst_4
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.headersOffset:I
invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
invokevirtual java.io.OutputStream.write:([B)V
2: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
invokestatic com.headius.backport9.buffer.Buffers.flipBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
pop
3: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.buf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.io.OutputStream.write:([BII)V
4: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
5: goto 10
StackMap locals:
StackMap stack: java.io.IOException
6: pop
7: aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
ifnull 10
aload 0
getfield org.jruby.ir.persistence.IRWriterStream.stream:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
8: goto 10
StackMap locals:
StackMap stack: java.io.IOException
9: pop
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/persistence/IRWriterStream;
0 11 1 script Lorg/jruby/ir/IRScope;
Exception table:
from to target type
0 5 6 Class java.io.IOException
7 8 9 Class java.io.IOException
MethodParameters:
Name Flags
script
}
SourceFile: "IRWriterStream.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public final Type = org.jruby.parser.StaticScope$Type of org.jruby.parser.StaticScope