public class android.text.AndroidBidi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.text.AndroidBidi
super_class: java.lang.Object
{
private static final android.text.AndroidBidi$EmojiBidiOverride sEmojiBidiOverride;
descriptor: Landroid/text/AndroidBidi$EmojiBidiOverride;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 59
new android.text.AndroidBidi$EmojiBidiOverride
dup
invokespecial android.text.AndroidBidi$EmojiBidiOverride.<init>:()V
putstatic android.text.AndroidBidi.sEmojiBidiOverride:Landroid/text/AndroidBidi$EmojiBidiOverride;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // android.text.AndroidBidi this
0: .line 33
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // android.text.AndroidBidi this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/text/AndroidBidi;
public static int bidi(int, char[], byte[]);
descriptor: (I[C[B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
0: .line 76
new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tBidi cannot be resolved to a variable\n\tBidi cannot be resolved to a variable\n\tBidi cannot be resolved to a variable\n\tBidi cannot be resolved to a variable\n\tBidi cannot be resolved to a variable\n\tBidi cannot be resolved to a type\n\tBidi cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
dir
chs
chInfo
public static android.text.Layout$Directions directions(int, byte[], int, char[], int, int);
descriptor: (I[BI[CII)Landroid/text/Layout$Directions;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=21, args_size=6
start local 0 // int dir
start local 1 // byte[] levels
start local 2 // int lstart
start local 3 // char[] chars
start local 4 // int cstart
start local 5 // int len
0: .line 106
iload 5 /* len */
ifne 2
1: .line 107
getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
areturn
2: .line 110
StackMap locals:
StackMap stack:
iload 0 /* dir */
iconst_1
if_icmpne 3
iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 6 /* baseLevel */
start local 6 // int baseLevel
5: .line 111
aload 1 /* levels */
iload 2 /* lstart */
baload
istore 7 /* curLevel */
start local 7 // int curLevel
6: .line 112
iload 7 /* curLevel */
istore 8 /* minLevel */
start local 8 // int minLevel
7: .line 113
iconst_1
istore 9 /* runCount */
start local 9 // int runCount
8: .line 114
iload 2 /* lstart */
iconst_1
iadd
istore 10 /* i */
start local 10 // int i
9: iload 2 /* lstart */
iload 5 /* len */
iadd
istore 11 /* e */
start local 11 // int e
10: goto 16
11: .line 115
StackMap locals: int byte[] int char[] int int int int int int int int
StackMap stack:
aload 1 /* levels */
iload 10 /* i */
baload
istore 12 /* level */
start local 12 // int level
12: .line 116
iload 12 /* level */
iload 7 /* curLevel */
if_icmpeq 15
13: .line 117
iload 12 /* level */
istore 7 /* curLevel */
14: .line 118
iinc 9 /* runCount */ 1
end local 12 // int level
15: .line 114
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 10 /* i */
iload 11 /* e */
if_icmplt 11
end local 11 // int e
end local 10 // int i
17: .line 123
iload 5 /* len */
istore 10 /* visLen */
start local 10 // int visLen
18: .line 124
iload 7 /* curLevel */
iconst_1
iand
iload 6 /* baseLevel */
iconst_1
iand
if_icmpeq 30
19: .line 126
goto 26
20: .line 127
StackMap locals:
StackMap stack:
aload 3 /* chars */
iload 4 /* cstart */
iload 10 /* visLen */
iadd
caload
istore 11 /* ch */
start local 11 // char ch
21: .line 129
iload 11 /* ch */
bipush 10
if_icmpne 24
22: .line 130
iinc 10 /* visLen */ -1
23: .line 131
goto 27
24: .line 134
StackMap locals: int
StackMap stack:
iload 11 /* ch */
bipush 32
if_icmpeq 26
iload 11 /* ch */
bipush 9
if_icmpeq 26
25: .line 135
goto 27
end local 11 // char ch
26: .line 126
StackMap locals:
StackMap stack:
iinc 10 /* visLen */ -1
iload 10 /* visLen */
ifge 20
27: .line 138
StackMap locals:
StackMap stack:
iinc 10 /* visLen */ 1
28: .line 139
iload 10 /* visLen */
iload 5 /* len */
if_icmpeq 30
29: .line 140
iinc 9 /* runCount */ 1
30: .line 144
StackMap locals:
StackMap stack:
iload 9 /* runCount */
iconst_1
if_icmpne 34
iload 8 /* minLevel */
iload 6 /* baseLevel */
if_icmpne 34
31: .line 146
iload 8 /* minLevel */
iconst_1
iand
ifeq 33
32: .line 147
getstatic android.text.Layout.DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
areturn
33: .line 149
StackMap locals:
StackMap stack:
getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
areturn
34: .line 152
StackMap locals:
StackMap stack:
iload 9 /* runCount */
iconst_2
imul
newarray 10
astore 11 /* ld */
start local 11 // int[] ld
35: .line 153
iload 8 /* minLevel */
istore 12 /* maxLevel */
start local 12 // int maxLevel
36: .line 154
iload 8 /* minLevel */
bipush 26
ishl
istore 13 /* levelBits */
start local 13 // int levelBits
37: .line 159
iconst_1
istore 14 /* n */
start local 14 // int n
38: .line 160
iload 2 /* lstart */
istore 15 /* prev */
start local 15 // int prev
39: .line 161
iload 8 /* minLevel */
istore 7 /* curLevel */
40: .line 162
iload 2 /* lstart */
istore 16 /* i */
start local 16 // int i
41: iload 2 /* lstart */
iload 10 /* visLen */
iadd
istore 17 /* e */
start local 17 // int e
42: goto 56
43: .line 163
StackMap locals: int byte[] int char[] int int int int int int int int[] int int int int int int
StackMap stack:
aload 1 /* levels */
iload 16 /* i */
baload
istore 18 /* level */
start local 18 // int level
44: .line 164
iload 18 /* level */
iload 7 /* curLevel */
if_icmpeq 55
45: .line 165
iload 18 /* level */
istore 7 /* curLevel */
46: .line 166
iload 18 /* level */
iload 12 /* maxLevel */
if_icmple 49
47: .line 167
iload 18 /* level */
istore 12 /* maxLevel */
48: .line 168
goto 51
StackMap locals: int
StackMap stack:
49: iload 18 /* level */
iload 8 /* minLevel */
if_icmpge 51
50: .line 169
iload 18 /* level */
istore 8 /* minLevel */
51: .line 172
StackMap locals:
StackMap stack:
aload 11 /* ld */
iload 14 /* n */
iinc 14 /* n */ 1
iload 16 /* i */
iload 15 /* prev */
isub
iload 13 /* levelBits */
ior
iastore
52: .line 173
aload 11 /* ld */
iload 14 /* n */
iinc 14 /* n */ 1
iload 16 /* i */
iload 2 /* lstart */
isub
iastore
53: .line 174
iload 7 /* curLevel */
bipush 26
ishl
istore 13 /* levelBits */
54: .line 175
iload 16 /* i */
istore 15 /* prev */
end local 18 // int level
55: .line 162
StackMap locals:
StackMap stack:
iinc 16 /* i */ 1
StackMap locals:
StackMap stack:
56: iload 16 /* i */
iload 17 /* e */
if_icmplt 43
end local 17 // int e
end local 16 // int i
57: .line 178
aload 11 /* ld */
iload 14 /* n */
iload 2 /* lstart */
iload 10 /* visLen */
iadd
iload 15 /* prev */
isub
iload 13 /* levelBits */
ior
iastore
58: .line 179
iload 10 /* visLen */
iload 5 /* len */
if_icmpge 61
59: .line 180
aload 11 /* ld */
iinc 14 /* n */ 1
iload 14 /* n */
iload 10 /* visLen */
iastore
60: .line 181
aload 11 /* ld */
iinc 14 /* n */ 1
iload 14 /* n */
iload 5 /* len */
iload 10 /* visLen */
isub
iload 6 /* baseLevel */
bipush 26
ishl
ior
iastore
end local 15 // int prev
end local 14 // int n
61: .line 196
StackMap locals: int byte[] int char[] int int int int int int int int[] int int
StackMap stack:
iload 8 /* minLevel */
iconst_1
iand
iload 6 /* baseLevel */
if_icmpne 67
62: .line 197
iinc 8 /* minLevel */ 1
63: .line 198
iload 12 /* maxLevel */
iload 8 /* minLevel */
if_icmple 64
iconst_1
goto 65
StackMap locals:
StackMap stack:
64: iconst_0
StackMap locals:
StackMap stack: int
65: istore 14 /* swap */
start local 14 // boolean swap
66: .line 199
goto 70
end local 14 // boolean swap
67: .line 200
StackMap locals:
StackMap stack:
iload 9 /* runCount */
iconst_1
if_icmple 68
iconst_1
goto 69
StackMap locals:
StackMap stack:
68: iconst_0
StackMap locals:
StackMap stack: int
69: istore 14 /* swap */
start local 14 // boolean swap
70: .line 202
StackMap locals: int
StackMap stack:
iload 14 /* swap */
ifeq 93
71: .line 203
iload 12 /* maxLevel */
iconst_1
isub
istore 15 /* level */
start local 15 // int level
72: goto 92
73: .line 204
StackMap locals: int
StackMap stack:
iconst_0
istore 16 /* i */
start local 16 // int i
74: goto 90
75: .line 205
StackMap locals: int
StackMap stack:
aload 1 /* levels */
aload 11 /* ld */
iload 16 /* i */
iaload
baload
iload 15 /* level */
if_icmplt 89
76: .line 206
iload 16 /* i */
iconst_2
iadd
istore 17 /* e */
start local 17 // int e
77: .line 207
goto 79
78: .line 208
StackMap locals: int
StackMap stack:
iinc 17 /* e */ 2
79: .line 207
StackMap locals:
StackMap stack:
iload 17 /* e */
aload 11 /* ld */
arraylength
if_icmpge 80
aload 1 /* levels */
aload 11 /* ld */
iload 17 /* e */
iaload
baload
iload 15 /* level */
if_icmpge 78
80: .line 210
StackMap locals:
StackMap stack:
iload 16 /* i */
istore 18 /* low */
start local 18 // int low
81: iload 17 /* e */
iconst_2
isub
istore 19 /* hi */
start local 19 // int hi
82: goto 87
83: .line 211
StackMap locals: int int
StackMap stack:
aload 11 /* ld */
iload 18 /* low */
iaload
istore 20 /* x */
start local 20 // int x
84: aload 11 /* ld */
iload 18 /* low */
aload 11 /* ld */
iload 19 /* hi */
iaload
iastore
aload 11 /* ld */
iload 19 /* hi */
iload 20 /* x */
iastore
85: .line 212
aload 11 /* ld */
iload 18 /* low */
iconst_1
iadd
iaload
istore 20 /* x */
aload 11 /* ld */
iload 18 /* low */
iconst_1
iadd
aload 11 /* ld */
iload 19 /* hi */
iconst_1
iadd
iaload
iastore
aload 11 /* ld */
iload 19 /* hi */
iconst_1
iadd
iload 20 /* x */
iastore
end local 20 // int x
86: .line 210
iinc 18 /* low */ 2
iinc 19 /* hi */ -2
StackMap locals:
StackMap stack:
87: iload 18 /* low */
iload 19 /* hi */
if_icmplt 83
end local 19 // int hi
end local 18 // int low
88: .line 214
iload 17 /* e */
iconst_2
iadd
istore 16 /* i */
end local 17 // int e
89: .line 204
StackMap locals:
StackMap stack:
iinc 16 /* i */ 2
StackMap locals:
StackMap stack:
90: iload 16 /* i */
aload 11 /* ld */
arraylength
if_icmplt 75
end local 16 // int i
91: .line 203
iinc 15 /* level */ -1
StackMap locals:
StackMap stack:
92: iload 15 /* level */
iload 8 /* minLevel */
if_icmpge 73
end local 15 // int level
93: .line 219
StackMap locals:
StackMap stack:
new android.text.Layout$Directions
dup
aload 11 /* ld */
invokespecial android.text.Layout$Directions.<init>:([I)V
areturn
end local 14 // boolean swap
end local 13 // int levelBits
end local 12 // int maxLevel
end local 11 // int[] ld
end local 10 // int visLen
end local 9 // int runCount
end local 8 // int minLevel
end local 7 // int curLevel
end local 6 // int baseLevel
end local 5 // int len
end local 4 // int cstart
end local 3 // char[] chars
end local 2 // int lstart
end local 1 // byte[] levels
end local 0 // int dir
LocalVariableTable:
Start End Slot Name Signature
0 94 0 dir I
0 94 1 levels [B
0 94 2 lstart I
0 94 3 chars [C
0 94 4 cstart I
0 94 5 len I
5 94 6 baseLevel I
6 94 7 curLevel I
7 94 8 minLevel I
8 94 9 runCount I
9 17 10 i I
10 17 11 e I
12 15 12 level I
18 94 10 visLen I
21 26 11 ch C
35 94 11 ld [I
36 94 12 maxLevel I
37 94 13 levelBits I
38 61 14 n I
39 61 15 prev I
41 57 16 i I
42 57 17 e I
44 55 18 level I
66 67 14 swap Z
70 94 14 swap Z
72 93 15 level I
74 91 16 i I
77 89 17 e I
81 88 18 low I
82 88 19 hi I
84 86 20 x I
MethodParameters:
Name Flags
dir
levels
lstart
chars
cstart
len
}
SourceFile: "AndroidBidi.java"
NestMembers:
android.text.AndroidBidi$EmojiBidiOverride
InnerClasses:
public EmojiBidiOverride = android.text.AndroidBidi$EmojiBidiOverride of android.text.AndroidBidi
public Directions = android.text.Layout$Directions of android.text.Layout
public final Visibility = com.android.internal.annotations.VisibleForTesting$Visibility of com.android.internal.annotations.VisibleForTesting
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PACKAGE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)