blob: 583329d8c8387ed8a4d03c2b1a5d2aca35e0567d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
// class version 52.0 (52)
// access flags 0x20
class jdk8/AllInstructions {
// compiled from: AllInstructions.java
// access flags 0x19
public final static INNERCLASS java/lang/invoke/MethodHandles$Lookup java/lang/invoke/MethodHandles Lookup
// access flags 0x0
<init>()V
L0
LINENUMBER 10 L0
ALOAD 0
INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
L1
LOCALVARIABLE this Ljdk8/AllInstructions; L0 L1 0
MAXSTACK = 1
MAXLOCALS = 1
// access flags 0x1
// signature (Ljava/util/List<Ljava/lang/String;>;)V
// declaration: void invokedynamic(java.util.List<java.lang.String>)
public invokedynamic(Ljava/util/List;)V
// parameter strings
L0
LINENUMBER 12 L0
ICONST_3
ANEWARRAY java/lang/String
DUP
ICONST_0
LDC "a"
AASTORE
DUP
ICONST_1
LDC "b"
AASTORE
DUP
ICONST_2
LDC "c"
AASTORE
INVOKESTATIC java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
ASTORE 2
L1
LINENUMBER 13 L1
ALOAD 1
ALOAD 2
INVOKEDYNAMIC accept(Ljava/util/List;)Ljava/util/function/Consumer; [
// handle kind 0x6 : 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;
// arguments:
(Ljava/lang/Object;)V,
// handle kind 0x6 : INVOKESTATIC
jdk8/AllInstructions.lambda$invokedynamic$0(Ljava/util/List;Ljava/lang/String;)V,
(Ljava/lang/String;)V
]
INVOKEINTERFACE java/util/List.forEach (Ljava/util/function/Consumer;)V (itf)
L2
LINENUMBER 17 L2
RETURN
L3
LOCALVARIABLE this Ljdk8/AllInstructions; L0 L3 0
LOCALVARIABLE strings Ljava/util/List; L0 L3 1
// signature Ljava/util/List<Ljava/lang/String;>;
// declaration: strings extends java.util.List<java.lang.String>
LOCALVARIABLE validStrings Ljava/util/List; L1 L3 2
// signature Ljava/util/List<Ljava/lang/String;>;
// declaration: validStrings extends java.util.List<java.lang.String>
MAXSTACK = 4
MAXLOCALS = 3
// access flags 0x100A
private static synthetic lambda$invokedynamic$0(Ljava/util/List;Ljava/lang/String;)V
// parameter final synthetic validStrings
// parameter synthetic s
L0
LINENUMBER 14 L0
ALOAD 0
ALOAD 1
INVOKEINTERFACE java/util/List.contains (Ljava/lang/Object;)Z (itf)
IFNE L1
L2
LINENUMBER 15 L2
GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
LDC "Invalid string %s\n"
ICONST_1
ANEWARRAY java/lang/Object
DUP
ICONST_0
ALOAD 1
AASTORE
INVOKEVIRTUAL java/io/PrintStream.printf (Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
POP
L1
LINENUMBER 16 L1
FRAME SAME
RETURN
L3
LOCALVARIABLE validStrings Ljava/util/List; L0 L3 0
LOCALVARIABLE s Ljava/lang/String; L0 L3 1
MAXSTACK = 6
MAXLOCALS = 2
}
|