class com.google.protobuf.IterableByteBufferInputStream extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.google.protobuf.IterableByteBufferInputStream
super_class: java.io.InputStream
{
private java.util.Iterator<java.nio.ByteBuffer> iterator;
descriptor: Ljava/util/Iterator;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Iterator<Ljava/nio/ByteBuffer;>;
private java.nio.ByteBuffer currentByteBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private int dataSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int currentIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int currentByteBufferPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean hasArray;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] currentArray;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int currentArrayOffset;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long currentAddress;
descriptor: J
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.Iterable<java.nio.ByteBuffer>);
descriptor: (Ljava/lang/Iterable;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
putfield com.google.protobuf.IterableByteBufferInputStream.iterator:Ljava/util/Iterator;
2: aload 0
iconst_0
putfield com.google.protobuf.IterableByteBufferInputStream.dataSize:I
3: aload 1
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 2
goto 6
StackMap locals: com.google.protobuf.IterableByteBufferInputStream java.lang.Iterable java.util.Iterator
StackMap stack:
4: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
pop
5: aload 0
dup
getfield com.google.protobuf.IterableByteBufferInputStream.dataSize:I
iconst_1
iadd
putfield com.google.protobuf.IterableByteBufferInputStream.dataSize:I
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
7: aload 0
iconst_m1
putfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
8: aload 0
invokevirtual com.google.protobuf.IterableByteBufferInputStream.getNextByteBuffer:()Z
ifne 13
9: aload 0
getstatic com.google.protobuf.Internal.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
putfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
10: aload 0
iconst_0
putfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
11: aload 0
iconst_0
putfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
12: aload 0
lconst_0
putfield com.google.protobuf.IterableByteBufferInputStream.currentAddress:J
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/protobuf/IterableByteBufferInputStream;
0 14 1 data Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;
Signature: (Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;)V
MethodParameters:
Name Flags
data
private boolean getNextByteBuffer();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
iconst_1
iadd
putfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
1: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.iterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.iterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
putfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
4: aload 0
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
putfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
5: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 10
6: aload 0
iconst_1
putfield com.google.protobuf.IterableByteBufferInputStream.hasArray:Z
7: aload 0
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.array:()[B
putfield com.google.protobuf.IterableByteBufferInputStream.currentArray:[B
8: aload 0
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
putfield com.google.protobuf.IterableByteBufferInputStream.currentArrayOffset:I
9: goto 13
10: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.google.protobuf.IterableByteBufferInputStream.hasArray:Z
11: aload 0
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
putfield com.google.protobuf.IterableByteBufferInputStream.currentAddress:J
12: aload 0
aconst_null
putfield com.google.protobuf.IterableByteBufferInputStream.currentArray:[B
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/google/protobuf/IterableByteBufferInputStream;
private void updateCurrentByteBufferPos(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
iload 1
iadd
putfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
1: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
if_icmpne 3
2: aload 0
invokevirtual com.google.protobuf.IterableByteBufferInputStream.getNextByteBuffer:()Z
pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/google/protobuf/IterableByteBufferInputStream;
0 4 1 numberOfBytesRead I
MethodParameters:
Name Flags
numberOfBytesRead
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.dataSize:I
if_icmpne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.hasArray:Z
ifeq 6
3: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentArray:[B
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentArrayOffset:I
iadd
baload
sipush 255
iand
istore 1
start local 1 4: aload 0
iconst_1
invokevirtual com.google.protobuf.IterableByteBufferInputStream.updateCurrentByteBufferPos:(I)V
5: iload 1
ireturn
end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
i2l
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentAddress:J
ladd
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
sipush 255
iand
istore 1
start local 1 7: aload 0
iconst_1
invokevirtual com.google.protobuf.IterableByteBufferInputStream.updateCurrentByteBufferPos:(I)V
8: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/protobuf/IterableByteBufferInputStream;
4 6 1 result I
7 9 1 result I
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentIndex:I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.dataSize:I
if_icmpne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
isub
istore 4
start local 4 3: iload 3
iload 4
if_icmple 5
4: iload 4
istore 3
5: StackMap locals: int
StackMap stack:
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.hasArray:Z
ifeq 10
6: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentArray:[B
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentArrayOffset:I
iadd
aload 1
iload 2
iload 3
7: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
iload 3
invokevirtual com.google.protobuf.IterableByteBufferInputStream.updateCurrentByteBufferPos:(I)V
9: goto 15
10: StackMap locals:
StackMap stack:
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 11: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBufferPos:I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
12: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
aload 1
iload 2
iload 3
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
13: aload 0
getfield com.google.protobuf.IterableByteBufferInputStream.currentByteBuffer:Ljava/nio/ByteBuffer;
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
14: aload 0
iload 3
invokevirtual com.google.protobuf.IterableByteBufferInputStream.updateCurrentByteBufferPos:(I)V
end local 5 15: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/google/protobuf/IterableByteBufferInputStream;
0 16 1 output [B
0 16 2 offset I
0 16 3 length I
3 16 4 remaining I
11 15 5 prevPos I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
output
offset
length
}
SourceFile: "IterableByteBufferInputStream.java"