final class java.util.stream.ForEachOps$ForEachTask<S, T> extends java.util.concurrent.CountedCompleter<java.lang.Void>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.util.stream.ForEachOps$ForEachTask
super_class: java.util.concurrent.CountedCompleter
{
private java.util.Spliterator<S> spliterator;
descriptor: Ljava/util/Spliterator;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Spliterator<TS;>;
private final java.util.stream.Sink<S> sink;
descriptor: Ljava/util/stream/Sink;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/stream/Sink<TS;>;
private final java.util.stream.PipelineHelper<T> helper;
descriptor: Ljava/util/stream/PipelineHelper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/stream/PipelineHelper<TT;>;
private long targetSize;
descriptor: J
flags: (0x0002) ACC_PRIVATE
void <init>(java.util.stream.PipelineHelper<T>, java.util.Spliterator<S>, java.util.stream.Sink<S>);
descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
1: aload 0
aload 3
putfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
2: aload 0
aload 1
putfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
3: aload 0
aload 2
putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
4: aload 0
lconst_0
putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
0 6 1 helper Ljava/util/stream/PipelineHelper<TT;>;
0 6 2 spliterator Ljava/util/Spliterator<TS;>;
0 6 3 sink Ljava/util/stream/Sink<TS;>;
Signature: (Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TS;>;Ljava/util/stream/Sink<TS;>;)V
MethodParameters:
Name Flags
helper
spliterator
sink
void <init>(java.util.stream.ForEachOps$ForEachTask<S, T>, java.util.Spliterator<S>);
descriptor: (Ljava/util/stream/ForEachOps$ForEachTask;Ljava/util/Spliterator;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
1: aload 0
aload 2
putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
2: aload 0
aload 1
getfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
putfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
3: aload 0
aload 1
getfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
4: aload 0
aload 1
getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
putfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
0 6 1 parent Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
0 6 2 spliterator Ljava/util/Spliterator<TS;>;
Signature: (Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;Ljava/util/Spliterator<TS;>;)V
MethodParameters:
Name Flags
parent
spliterator
public void compute();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=1
start local 0 0: aload 0
getfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Spliterator.estimateSize:()J
lstore 3
start local 3 2: aload 0
getfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
dup2
lstore 5
start local 5 3: lconst_0
lcmp
ifne 5
4: aload 0
lload 3
invokestatic java.util.stream.AbstractTask.suggestTargetSize:(J)J
dup2
lstore 5
putfield java.util.stream.ForEachOps$ForEachTask.targetSize:J
5: StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long
StackMap stack:
getstatic java.util.stream.StreamOpFlag.SHORT_CIRCUIT:Ljava/util/stream/StreamOpFlag;
aload 0
getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: aload 0
getfield java.util.stream.ForEachOps$ForEachTask.sink:Ljava/util/stream/Sink;
astore 9
start local 9 8: aload 0
astore 10
start local 10 9: goto 27
10: StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
StackMap stack:
lload 3
lload 5
lcmp
ifle 13
11: aload 1
invokeinterface java.util.Spliterator.trySplit:()Ljava/util/Spliterator;
dup
astore 2
start local 2 12: ifnonnull 15
end local 2 13: StackMap locals:
StackMap stack:
aload 10
getfield java.util.stream.ForEachOps$ForEachTask.helper:Ljava/util/stream/PipelineHelper;
aload 9
aload 1
invokevirtual java.util.stream.PipelineHelper.copyInto:(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
14: goto 28
start local 2 15: StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator java.util.Spliterator long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
StackMap stack:
new java.util.stream.ForEachOps$ForEachTask
dup
aload 10
aload 2
invokespecial java.util.stream.ForEachOps$ForEachTask.<init>:(Ljava/util/stream/ForEachOps$ForEachTask;Ljava/util/Spliterator;)V
astore 11
start local 11 16: aload 10
iconst_1
invokevirtual java.util.stream.ForEachOps$ForEachTask.addToPendingCount:(I)V
17: iload 8
ifeq 23
18: iconst_0
istore 8
19: aload 2
astore 1
20: aload 10
astore 12
start local 12 21: aload 11
astore 10
22: goto 25
end local 12 23: StackMap locals: java.util.stream.ForEachOps$ForEachTask
StackMap stack:
iconst_1
istore 8
24: aload 11
astore 12
start local 12 25: StackMap locals: java.util.stream.ForEachOps$ForEachTask
StackMap stack:
aload 12
invokevirtual java.util.stream.ForEachOps$ForEachTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
26: aload 1
invokeinterface java.util.Spliterator.estimateSize:()J
lstore 3
end local 12 end local 11 end local 2 27: StackMap locals: java.util.stream.ForEachOps$ForEachTask java.util.Spliterator top long long int int java.util.stream.Sink java.util.stream.ForEachOps$ForEachTask
StackMap stack:
iload 7
ifeq 10
aload 9
invokeinterface java.util.stream.Sink.cancellationRequested:()Z
ifeq 10
28: StackMap locals:
StackMap stack:
aload 10
aconst_null
putfield java.util.stream.ForEachOps$ForEachTask.spliterator:Ljava/util/Spliterator;
29: aload 10
invokevirtual java.util.stream.ForEachOps$ForEachTask.propagateCompletion:()V
30: return
end local 10 end local 9 end local 8 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
1 31 1 rightSplit Ljava/util/Spliterator<TS;>;
12 13 2 leftSplit Ljava/util/Spliterator<TS;>;
15 27 2 leftSplit Ljava/util/Spliterator<TS;>;
2 31 3 sizeEstimate J
3 31 5 sizeThreshold J
6 31 7 isShortCircuit Z
7 31 8 forkRight Z
8 31 9 taskSink Ljava/util/stream/Sink<TS;>;
9 31 10 task Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
16 27 11 leftTask Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
21 23 12 taskToFork Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
25 27 12 taskToFork Ljava/util/stream/ForEachOps$ForEachTask<TS;TT;>;
}
Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>Ljava/util/concurrent/CountedCompleter<Ljava/lang/Void;>;
SourceFile: "ForEachOps.java"
NestHost: java.util.stream.ForEachOps
InnerClasses:
final ForEachTask = java.util.stream.ForEachOps$ForEachTask of java.util.stream.ForEachOps