final class sun.text.bidi.BidiLine
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.text.bidi.BidiLine
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.text.bidi.BidiLine this
0: .line 41
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.text.bidi.BidiLine this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/text/bidi/BidiLine;
static void setTrailingWSStart(sun.text.bidi.BidiBase);
descriptor: (Lsun/text/bidi/BidiBase;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 // sun.text.bidi.BidiBase bidiBase
0: .line 110
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.dirProps:[B
astore 1 /* dirProps */
start local 1 // byte[] dirProps
1: .line 111
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 2 /* levels */
start local 2 // byte[] levels
2: .line 112
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 3 /* start */
start local 3 // int start
3: .line 113
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
istore 4 /* paraLevel */
start local 4 // byte paraLevel
4: .line 121
aload 1 /* dirProps */
iload 3 /* start */
iconst_1
isub
baload
bipush 7
if_icmpne 8
5: .line 122
aload 0 /* bidiBase */
iload 3 /* start */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
6: .line 123
return
7: .line 128
StackMap locals: sun.text.bidi.BidiBase byte[] byte[] int int
StackMap stack:
iinc 3 /* start */ -1
8: .line 126
StackMap locals:
StackMap stack:
iload 3 /* start */
ifle 12
9: .line 127
aload 1 /* dirProps */
iload 3 /* start */
iconst_1
isub
baload
invokestatic sun.text.bidi.BidiBase.DirPropFlag:(B)I
getstatic sun.text.bidi.BidiBase.MASK_WS:I
iand
ifne 7
10: .line 132
goto 12
11: .line 133
StackMap locals:
StackMap stack:
iinc 3 /* start */ -1
12: .line 132
StackMap locals:
StackMap stack:
iload 3 /* start */
ifle 13
aload 2 /* levels */
iload 3 /* start */
iconst_1
isub
baload
iload 4 /* paraLevel */
if_icmpeq 11
13: .line 136
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
iload 3 /* start */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
14: .line 137
return
end local 4 // byte paraLevel
end local 3 // int start
end local 2 // byte[] levels
end local 1 // byte[] dirProps
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 15 0 bidiBase Lsun/text/bidi/BidiBase;
1 15 1 dirProps [B
2 15 2 levels [B
3 15 3 start I
4 15 4 paraLevel B
MethodParameters:
Name Flags
bidiBase
static java.text.Bidi setLine(sun.text.bidi.BidiBase, java.text.Bidi, sun.text.bidi.BidiBase, int, int);
descriptor: (Lsun/text/bidi/BidiBase;Ljava/text/Bidi;Lsun/text/bidi/BidiBase;II)Ljava/text/Bidi;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=10, args_size=5
start local 0 // sun.text.bidi.BidiBase paraBidi
start local 1 // java.text.Bidi newBidi
start local 2 // sun.text.bidi.BidiBase lineBidi
start local 3 // int start
start local 4 // int limit
0: .line 150
aload 2 /* lineBidi */
aload 2 /* lineBidi */
1: .line 151
aload 2 /* lineBidi */
iload 4 /* limit */
iload 3 /* start */
isub
dup_x1
putfield sun.text.bidi.BidiBase.resultLength:I
2: .line 150
dup_x1
putfield sun.text.bidi.BidiBase.originalLength:I
dup_x1
putfield sun.text.bidi.BidiBase.length:I
istore 5 /* length */
start local 5 // int length
3: .line 153
aload 2 /* lineBidi */
iload 5 /* length */
newarray 5
putfield sun.text.bidi.BidiBase.text:[C
4: .line 154
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.text:[C
iload 3 /* start */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.text:[C
iconst_0
iload 5 /* length */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 155
aload 2 /* lineBidi */
aload 0 /* paraBidi */
iload 3 /* start */
invokevirtual sun.text.bidi.BidiBase.GetParaLevelAt:(I)B
putfield sun.text.bidi.BidiBase.paraLevel:B
6: .line 156
aload 2 /* lineBidi */
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.paraCount:I
putfield sun.text.bidi.BidiBase.paraCount:I
7: .line 157
aload 2 /* lineBidi */
iconst_0
anewarray sun.text.bidi.BidiRun
putfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
8: .line 158
aload 2 /* lineBidi */
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.reorderingMode:I
putfield sun.text.bidi.BidiBase.reorderingMode:I
9: .line 159
aload 2 /* lineBidi */
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.reorderingOptions:I
putfield sun.text.bidi.BidiBase.reorderingOptions:I
10: .line 160
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.controlCount:I
ifle 18
11: .line 162
iload 3 /* start */
istore 6 /* j */
start local 6 // int j
12: goto 16
13: .line 163
StackMap locals: int int
StackMap stack:
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.text:[C
iload 6 /* j */
caload
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifeq 15
14: .line 164
aload 2 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.controlCount:I
iconst_1
iadd
putfield sun.text.bidi.BidiBase.controlCount:I
15: .line 162
StackMap locals:
StackMap stack:
iinc 6 /* j */ 1
StackMap locals:
StackMap stack:
16: iload 6 /* j */
iload 4 /* limit */
if_icmplt 13
17: .line 167
aload 2 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.resultLength:I
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.controlCount:I
isub
putfield sun.text.bidi.BidiBase.resultLength:I
end local 6 // int j
18: .line 170
StackMap locals:
StackMap stack:
aload 2 /* lineBidi */
iload 5 /* length */
invokevirtual sun.text.bidi.BidiBase.getDirPropsMemory:(I)V
19: .line 171
aload 2 /* lineBidi */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.dirPropsMemory:[B
putfield sun.text.bidi.BidiBase.dirProps:[B
20: .line 172
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.dirProps:[B
iload 3 /* start */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.dirProps:[B
iconst_0
21: .line 173
iload 5 /* length */
22: .line 172
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: .line 175
aload 2 /* lineBidi */
iload 5 /* length */
invokevirtual sun.text.bidi.BidiBase.getLevelsMemory:(I)V
24: .line 176
aload 2 /* lineBidi */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.levelsMemory:[B
putfield sun.text.bidi.BidiBase.levels:[B
25: .line 177
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.levels:[B
iload 3 /* start */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.levels:[B
iconst_0
26: .line 178
iload 5 /* length */
27: .line 177
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: .line 179
aload 2 /* lineBidi */
iconst_m1
putfield sun.text.bidi.BidiBase.runCount:I
29: .line 181
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.direction:B
iconst_2
if_icmpeq 39
30: .line 183
aload 2 /* lineBidi */
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.direction:B
putfield sun.text.bidi.BidiBase.direction:B
31: .line 190
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 3 /* start */
if_icmpgt 34
32: .line 191
aload 2 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
33: .line 192
goto 67
StackMap locals:
StackMap stack:
34: aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 4 /* limit */
if_icmpge 37
35: .line 193
aload 2 /* lineBidi */
aload 0 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 3 /* start */
isub
putfield sun.text.bidi.BidiBase.trailingWSStart:I
36: .line 194
goto 67
37: .line 195
StackMap locals:
StackMap stack:
aload 2 /* lineBidi */
iload 5 /* length */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
38: .line 197
goto 67
39: .line 198
StackMap locals:
StackMap stack:
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.levels:[B
astore 6 /* levels */
start local 6 // byte[] levels
40: .line 202
aload 2 /* lineBidi */
invokestatic sun.text.bidi.BidiLine.setTrailingWSStart:(Lsun/text/bidi/BidiBase;)V
41: .line 203
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 8 /* trailingWSStart */
start local 8 // int trailingWSStart
42: .line 206
iload 8 /* trailingWSStart */
ifne 45
43: .line 208
aload 2 /* lineBidi */
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iand
i2b
putfield sun.text.bidi.BidiBase.direction:B
44: .line 209
goto 58
45: .line 211
StackMap locals: sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int byte[] top int
StackMap stack:
aload 6 /* levels */
iconst_0
baload
iconst_1
iand
i2b
istore 9 /* level */
start local 9 // byte level
46: .line 215
iload 8 /* trailingWSStart */
iload 5 /* length */
if_icmpge 50
47: .line 216
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iand
iload 9 /* level */
if_icmpeq 50
48: .line 219
aload 2 /* lineBidi */
iconst_2
putfield sun.text.bidi.BidiBase.direction:B
49: .line 220
goto 58
50: .line 223
StackMap locals: int
StackMap stack:
iconst_1
istore 7 /* i */
start local 7 // int i
51: .line 224
StackMap locals: sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int byte[] int int int
StackMap stack:
iload 7 /* i */
iload 8 /* trailingWSStart */
if_icmpne 54
52: .line 226
aload 2 /* lineBidi */
iload 9 /* level */
putfield sun.text.bidi.BidiBase.direction:B
53: .line 227
goto 58
54: .line 228
StackMap locals:
StackMap stack:
aload 6 /* levels */
iload 7 /* i */
baload
iconst_1
iand
iload 9 /* level */
if_icmpeq 57
55: .line 229
aload 2 /* lineBidi */
iconst_2
putfield sun.text.bidi.BidiBase.direction:B
56: .line 230
goto 58
57: .line 223
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
goto 51
end local 9 // byte level
end local 7 // int i
58: .line 236
StackMap locals: sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int byte[] top int
StackMap stack:
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.direction:B
tableswitch { // 0 - 1
0: 59
1: 64
default: 67
}
59: .line 239
StackMap locals:
StackMap stack:
aload 2 /* lineBidi */
60: .line 240
aload 2 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iadd
bipush -2
iand
i2b
61: .line 239
putfield sun.text.bidi.BidiBase.paraLevel:B
62: .line 244
aload 2 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
63: .line 245
goto 67
64: .line 248
StackMap locals:
StackMap stack:
aload 2 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
ior
i2b
putfield sun.text.bidi.BidiBase.paraLevel:B
65: .line 252
aload 2 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
66: .line 253
goto 67
end local 8 // int trailingWSStart
end local 6 // byte[] levels
67: .line 259
StackMap locals: sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int
StackMap stack:
aload 2 /* lineBidi */
aload 0 /* paraBidi */
putfield sun.text.bidi.BidiBase.paraBidi:Lsun/text/bidi/BidiBase;
68: .line 261
aload 1 /* newBidi */
areturn
end local 5 // int length
end local 4 // int limit
end local 3 // int start
end local 2 // sun.text.bidi.BidiBase lineBidi
end local 1 // java.text.Bidi newBidi
end local 0 // sun.text.bidi.BidiBase paraBidi
LocalVariableTable:
Start End Slot Name Signature
0 69 0 paraBidi Lsun/text/bidi/BidiBase;
0 69 1 newBidi Ljava/text/Bidi;
0 69 2 lineBidi Lsun/text/bidi/BidiBase;
0 69 3 start I
0 69 4 limit I
3 69 5 length I
12 18 6 j I
40 67 6 levels [B
51 58 7 i I
42 67 8 trailingWSStart I
46 58 9 level B
MethodParameters:
Name Flags
paraBidi
newBidi
lineBidi
start
limit
static byte getLevelAt(sun.text.bidi.BidiBase, int);
descriptor: (Lsun/text/bidi/BidiBase;I)B
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // int charIndex
0: .line 267
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.direction:B
iconst_2
if_icmpne 1
iload 1 /* charIndex */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
if_icmplt 2
1: .line 268
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
iload 1 /* charIndex */
invokevirtual sun.text.bidi.BidiBase.GetParaLevelAt:(I)B
ireturn
2: .line 270
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
iload 1 /* charIndex */
baload
ireturn
end local 1 // int charIndex
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 3 0 bidiBase Lsun/text/bidi/BidiBase;
0 3 1 charIndex I
MethodParameters:
Name Flags
bidiBase
charIndex
static byte[] getLevels(sun.text.bidi.BidiBase);
descriptor: (Lsun/text/bidi/BidiBase;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 // sun.text.bidi.BidiBase bidiBase
0: .line 276
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 1 /* start */
start local 1 // int start
1: .line 277
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 2 /* length */
start local 2 // int length
2: .line 279
iload 1 /* start */
iload 2 /* length */
if_icmpeq 5
3: .line 290
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
iload 1 /* start */
iload 2 /* length */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
invokestatic java.util.Arrays.fill:([BIIB)V
4: .line 293
aload 0 /* bidiBase */
iload 2 /* length */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
5: .line 295
StackMap locals: int int
StackMap stack:
iload 2 /* length */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
arraylength
if_icmpge 9
6: .line 296
iload 2 /* length */
newarray 8
astore 3 /* levels */
start local 3 // byte[] levels
7: .line 297
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
iconst_0
aload 3 /* levels */
iconst_0
iload 2 /* length */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: .line 298
aload 3 /* levels */
areturn
end local 3 // byte[] levels
9: .line 300
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
areturn
end local 2 // int length
end local 1 // int start
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 10 0 bidiBase Lsun/text/bidi/BidiBase;
1 10 1 start I
2 10 2 length I
7 9 3 levels [B
MethodParameters:
Name Flags
bidiBase
static sun.text.bidi.BidiRun getVisualRun(sun.text.bidi.BidiBase, int);
descriptor: (Lsun/text/bidi/BidiBase;I)Lsun/text/bidi/BidiRun;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // int runIndex
0: .line 304
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 1 /* runIndex */
aaload
getfield sun.text.bidi.BidiRun.start:I
istore 2 /* start */
start local 2 // int start
1: .line 306
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 1 /* runIndex */
aaload
getfield sun.text.bidi.BidiRun.level:B
istore 4 /* level */
start local 4 // byte level
2: .line 308
iload 1 /* runIndex */
ifle 9
3: .line 309
iload 2 /* start */
4: .line 310
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 1 /* runIndex */
aaload
getfield sun.text.bidi.BidiRun.limit:I
5: .line 309
iadd
6: .line 311
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 1 /* runIndex */
iconst_1
isub
aaload
getfield sun.text.bidi.BidiRun.limit:I
7: .line 309
isub
istore 3 /* limit */
start local 3 // int limit
8: .line 312
goto 10
end local 3 // int limit
9: .line 313
StackMap locals: sun.text.bidi.BidiBase int int top int
StackMap stack:
iload 2 /* start */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iconst_0
aaload
getfield sun.text.bidi.BidiRun.limit:I
iadd
istore 3 /* limit */
start local 3 // int limit
10: .line 315
StackMap locals: sun.text.bidi.BidiBase int int int int
StackMap stack:
new sun.text.bidi.BidiRun
dup
iload 2 /* start */
iload 3 /* limit */
iload 4 /* level */
invokespecial sun.text.bidi.BidiRun.<init>:(IIB)V
areturn
end local 4 // byte level
end local 3 // int limit
end local 2 // int start
end local 1 // int runIndex
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 11 0 bidiBase Lsun/text/bidi/BidiBase;
0 11 1 runIndex I
1 11 2 start I
8 9 3 limit I
10 11 3 limit I
2 11 4 level B
MethodParameters:
Name Flags
bidiBase
runIndex
private static void getSingleRun(sun.text.bidi.BidiBase, byte);
descriptor: (Lsun/text/bidi/BidiBase;B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=2, args_size=2
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // byte level
0: .line 321
aload 0 /* bidiBase */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.simpleRuns:[Lsun/text/bidi/BidiRun;
putfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
1: .line 322
aload 0 /* bidiBase */
iconst_1
putfield sun.text.bidi.BidiBase.runCount:I
2: .line 325
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iconst_0
new sun.text.bidi.BidiRun
dup
iconst_0
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
iload 1 /* level */
invokespecial sun.text.bidi.BidiRun.<init>:(IIB)V
aastore
3: .line 326
return
end local 1 // byte level
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 4 0 bidiBase Lsun/text/bidi/BidiBase;
0 4 1 level B
MethodParameters:
Name Flags
bidiBase
level
private static void reorderLine(sun.text.bidi.BidiBase, byte, byte);
descriptor: (Lsun/text/bidi/BidiBase;BB)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=10, args_size=3
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // byte minLevel
start local 2 // byte maxLevel
0: .line 364
iload 2 /* maxLevel */
iload 1 /* minLevel */
iconst_1
ior
if_icmpgt 2
1: .line 365
return
2: .line 378
StackMap locals:
StackMap stack:
iload 1 /* minLevel */
iconst_1
iadd
i2b
istore 1 /* minLevel */
3: .line 380
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 3 /* runs */
start local 3 // sun.text.bidi.BidiRun[] runs
4: .line 381
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 5 /* levels */
start local 5 // byte[] levels
5: .line 382
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 9 /* runCount */
start local 9 // int runCount
6: .line 385
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
if_icmpge 31
7: .line 386
iinc 9 /* runCount */ -1
8: .line 389
goto 31
9: .line 390
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] top top top int
StackMap stack:
iconst_0
istore 6 /* firstRun */
start local 6 // int firstRun
10: .line 396
goto 12
11: .line 397
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] int top top int
StackMap stack:
iinc 6 /* firstRun */ 1
12: .line 396
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 9 /* runCount */
if_icmpge 13
aload 5 /* levels */
aload 3 /* runs */
iload 6 /* firstRun */
aaload
getfield sun.text.bidi.BidiRun.start:I
baload
iload 2 /* maxLevel */
if_icmplt 11
13: .line 399
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 9 /* runCount */
if_icmplt 15
14: .line 400
goto 31
15: .line 404
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
istore 8 /* limitRun */
start local 8 // int limitRun
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] int top int int
StackMap stack:
16: iinc 8 /* limitRun */ 1
iload 8 /* limitRun */
iload 9 /* runCount */
if_icmpge 19
17: .line 405
aload 5 /* levels */
aload 3 /* runs */
iload 8 /* limitRun */
aaload
getfield sun.text.bidi.BidiRun.start:I
baload
iload 2 /* maxLevel */
18: .line 404
if_icmpge 16
19: .line 408
StackMap locals:
StackMap stack:
iload 8 /* limitRun */
iconst_1
isub
istore 7 /* endRun */
start local 7 // int endRun
20: .line 409
goto 26
21: .line 410
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] int int int int
StackMap stack:
aload 3 /* runs */
iload 6 /* firstRun */
aaload
astore 4 /* tempRun */
start local 4 // sun.text.bidi.BidiRun tempRun
22: .line 411
aload 3 /* runs */
iload 6 /* firstRun */
aload 3 /* runs */
iload 7 /* endRun */
aaload
aastore
23: .line 412
aload 3 /* runs */
iload 7 /* endRun */
aload 4 /* tempRun */
aastore
24: .line 413
iinc 6 /* firstRun */ 1
25: .line 414
iinc 7 /* endRun */ -1
end local 4 // sun.text.bidi.BidiRun tempRun
26: .line 409
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 7 /* endRun */
if_icmplt 21
27: .line 417
iload 8 /* limitRun */
iload 9 /* runCount */
if_icmpne 29
28: .line 418
goto 31
29: .line 420
StackMap locals:
StackMap stack:
iload 8 /* limitRun */
iconst_1
iadd
istore 6 /* firstRun */
end local 8 // int limitRun
end local 7 // int endRun
30: .line 393
goto 12
end local 6 // int firstRun
31: .line 389
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] top top top int
StackMap stack:
iload 2 /* maxLevel */
iconst_1
isub
i2b
dup
istore 2 /* maxLevel */
iload 1 /* minLevel */
if_icmpge 9
32: .line 426
iload 1 /* minLevel */
iconst_1
iand
ifne 43
33: .line 427
iconst_0
istore 6 /* firstRun */
start local 6 // int firstRun
34: .line 430
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
if_icmpne 42
35: .line 431
iinc 9 /* runCount */ -1
36: .line 435
goto 42
37: .line 436
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] int top top int
StackMap stack:
aload 3 /* runs */
iload 6 /* firstRun */
aaload
astore 4 /* tempRun */
start local 4 // sun.text.bidi.BidiRun tempRun
38: .line 437
aload 3 /* runs */
iload 6 /* firstRun */
aload 3 /* runs */
iload 9 /* runCount */
aaload
aastore
39: .line 438
aload 3 /* runs */
iload 9 /* runCount */
aload 4 /* tempRun */
aastore
40: .line 439
iinc 6 /* firstRun */ 1
41: .line 440
iinc 9 /* runCount */ -1
end local 4 // sun.text.bidi.BidiRun tempRun
42: .line 435
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 9 /* runCount */
if_icmplt 37
end local 6 // int firstRun
43: .line 443
StackMap locals: sun.text.bidi.BidiBase int int sun.text.bidi.BidiRun[] top byte[] top top top int
StackMap stack:
return
end local 9 // int runCount
end local 5 // byte[] levels
end local 3 // sun.text.bidi.BidiRun[] runs
end local 2 // byte maxLevel
end local 1 // byte minLevel
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 44 0 bidiBase Lsun/text/bidi/BidiBase;
0 44 1 minLevel B
0 44 2 maxLevel B
4 44 3 runs [Lsun/text/bidi/BidiRun;
22 26 4 tempRun Lsun/text/bidi/BidiRun;
38 42 4 tempRun Lsun/text/bidi/BidiRun;
5 44 5 levels [B
10 31 6 firstRun I
34 43 6 firstRun I
20 30 7 endRun I
16 30 8 limitRun I
6 44 9 runCount I
MethodParameters:
Name Flags
bidiBase
minLevel
maxLevel
static int getRunFromLogicalIndex(sun.text.bidi.BidiBase, int);
descriptor: (Lsun/text/bidi/BidiBase;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=8, args_size=2
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // int logicalIndex
0: .line 448
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 2 /* runs */
start local 2 // sun.text.bidi.BidiRun[] runs
1: .line 449
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 3 /* runCount */
start local 3 // int runCount
2: iconst_0
istore 4 /* visualStart */
start local 4 // int visualStart
3: .line 451
iconst_0
istore 5 /* i */
start local 5 // int i
4: goto 11
5: .line 452
StackMap locals: sun.text.bidi.BidiBase int sun.text.bidi.BidiRun[] int int int
StackMap stack:
aload 2 /* runs */
iload 5 /* i */
aaload
getfield sun.text.bidi.BidiRun.limit:I
iload 4 /* visualStart */
isub
istore 6 /* length */
start local 6 // int length
6: .line 453
aload 2 /* runs */
iload 5 /* i */
aaload
getfield sun.text.bidi.BidiRun.start:I
istore 7 /* logicalStart */
start local 7 // int logicalStart
7: .line 454
iload 1 /* logicalIndex */
iload 7 /* logicalStart */
if_icmplt 9
iload 1 /* logicalIndex */
iload 7 /* logicalStart */
iload 6 /* length */
iadd
if_icmpge 9
8: .line 455
iload 5 /* i */
ireturn
9: .line 457
StackMap locals: int int
StackMap stack:
iload 4 /* visualStart */
iload 6 /* length */
iadd
istore 4 /* visualStart */
10: .line 451
iinc 5 /* i */ 1
end local 7 // int logicalStart
end local 6 // int length
StackMap locals:
StackMap stack:
11: iload 5 /* i */
iload 3 /* runCount */
if_icmplt 5
12: .line 460
new java.lang.IllegalStateException
dup
ldc "Internal ICU error in getRunFromLogicalIndex"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 5 // int i
end local 4 // int visualStart
end local 3 // int runCount
end local 2 // sun.text.bidi.BidiRun[] runs
end local 1 // int logicalIndex
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 13 0 bidiBase Lsun/text/bidi/BidiBase;
0 13 1 logicalIndex I
1 13 2 runs [Lsun/text/bidi/BidiRun;
2 13 3 runCount I
3 13 4 visualStart I
4 13 5 i I
6 11 6 length I
7 11 7 logicalStart I
MethodParameters:
Name Flags
bidiBase
logicalIndex
static void getRuns(sun.text.bidi.BidiBase);
descriptor: (Lsun/text/bidi/BidiBase;)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=13, args_size=1
start local 0 // sun.text.bidi.BidiBase bidiBase
0: .line 479
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
iflt 2
1: .line 480
return
2: .line 482
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.direction:B
iconst_2
if_icmpeq 5
3: .line 485
aload 0 /* bidiBase */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
invokestatic sun.text.bidi.BidiLine.getSingleRun:(Lsun/text/bidi/BidiBase;B)V
4: .line 486
goto 57
5: .line 488
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 1 /* length */
start local 1 // int length
6: .line 489
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 3 /* levels */
start local 3 // byte[] levels
7: .line 491
iconst_m1
istore 6 /* level */
start local 6 // byte level
8: .line 503
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 2 /* limit */
start local 2 // int limit
9: .line 505
iconst_0
istore 5 /* runCount */
start local 5 // int runCount
10: .line 506
iconst_0
istore 4 /* i */
start local 4 // int i
11: goto 16
12: .line 508
StackMap locals: sun.text.bidi.BidiBase int int byte[] int int int
StackMap stack:
aload 3 /* levels */
iload 4 /* i */
baload
iload 6 /* level */
if_icmpeq 15
13: .line 509
iinc 5 /* runCount */ 1
14: .line 510
aload 3 /* levels */
iload 4 /* i */
baload
istore 6 /* level */
15: .line 506
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 4 /* i */
iload 2 /* limit */
if_icmplt 12
17: .line 518
iload 5 /* runCount */
iconst_1
if_icmpne 20
iload 2 /* limit */
iload 1 /* length */
if_icmpne 20
18: .line 520
aload 0 /* bidiBase */
aload 3 /* levels */
iconst_0
baload
invokestatic sun.text.bidi.BidiLine.getSingleRun:(Lsun/text/bidi/BidiBase;B)V
19: .line 521
goto 57
20: .line 525
StackMap locals:
StackMap stack:
bipush 126
istore 10 /* minLevel */
start local 10 // byte minLevel
21: .line 526
iconst_0
istore 11 /* maxLevel */
start local 11 // byte maxLevel
22: .line 529
iload 2 /* limit */
iload 1 /* length */
if_icmpge 24
23: .line 530
iinc 5 /* runCount */ 1
24: .line 534
StackMap locals: sun.text.bidi.BidiBase int int byte[] int int int top top top int int
StackMap stack:
aload 0 /* bidiBase */
iload 5 /* runCount */
invokevirtual sun.text.bidi.BidiBase.getRunsMemory:(I)V
25: .line 535
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runsMemory:[Lsun/text/bidi/BidiRun;
astore 7 /* runs */
start local 7 // sun.text.bidi.BidiRun[] runs
26: .line 543
iconst_0
istore 8 /* runIndex */
start local 8 // int runIndex
27: .line 546
iconst_0
istore 4 /* i */
28: .line 549
StackMap locals: sun.text.bidi.BidiBase int int byte[] int int int sun.text.bidi.BidiRun[] int top int int
StackMap stack:
iload 4 /* i */
istore 9 /* start */
start local 9 // int start
29: .line 550
aload 3 /* levels */
iload 4 /* i */
baload
istore 6 /* level */
30: .line 551
iload 6 /* level */
iload 10 /* minLevel */
if_icmpge 32
31: .line 552
iload 6 /* level */
istore 10 /* minLevel */
32: .line 554
StackMap locals: sun.text.bidi.BidiBase int int byte[] int int int sun.text.bidi.BidiRun[] int int int int
StackMap stack:
iload 6 /* level */
iload 11 /* maxLevel */
if_icmple 34
33: .line 555
iload 6 /* level */
istore 11 /* maxLevel */
34: .line 559
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
iload 4 /* i */
iload 2 /* limit */
if_icmpge 35
aload 3 /* levels */
iload 4 /* i */
baload
iload 6 /* level */
if_icmpeq 34
35: .line 562
StackMap locals:
StackMap stack:
aload 7 /* runs */
iload 8 /* runIndex */
new sun.text.bidi.BidiRun
dup
iload 9 /* start */
iload 4 /* i */
iload 9 /* start */
isub
iload 6 /* level */
invokespecial sun.text.bidi.BidiRun.<init>:(IIB)V
aastore
36: .line 563
iinc 8 /* runIndex */ 1
37: .line 564
iload 4 /* i */
iload 2 /* limit */
38: .line 547
if_icmplt 28
39: .line 566
iload 2 /* limit */
iload 1 /* length */
if_icmpge 43
40: .line 568
aload 7 /* runs */
iload 8 /* runIndex */
new sun.text.bidi.BidiRun
dup
iload 2 /* limit */
iload 1 /* length */
iload 2 /* limit */
isub
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
invokespecial sun.text.bidi.BidiRun.<init>:(IIB)V
aastore
41: .line 571
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
iload 10 /* minLevel */
if_icmpge 43
42: .line 572
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
istore 10 /* minLevel */
43: .line 577
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
aload 7 /* runs */
putfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
44: .line 578
aload 0 /* bidiBase */
iload 5 /* runCount */
putfield sun.text.bidi.BidiBase.runCount:I
45: .line 580
aload 0 /* bidiBase */
iload 10 /* minLevel */
iload 11 /* maxLevel */
invokestatic sun.text.bidi.BidiLine.reorderLine:(Lsun/text/bidi/BidiBase;BB)V
46: .line 584
iconst_0
istore 2 /* limit */
47: .line 585
iconst_0
istore 4 /* i */
goto 51
48: .line 586
StackMap locals:
StackMap stack:
aload 7 /* runs */
iload 4 /* i */
aaload
aload 3 /* levels */
aload 7 /* runs */
iload 4 /* i */
aaload
getfield sun.text.bidi.BidiRun.start:I
baload
putfield sun.text.bidi.BidiRun.level:B
49: .line 587
aload 7 /* runs */
iload 4 /* i */
aaload
dup
getfield sun.text.bidi.BidiRun.limit:I
iload 2 /* limit */
iadd
dup_x1
putfield sun.text.bidi.BidiRun.limit:I
istore 2 /* limit */
50: .line 585
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
51: iload 4 /* i */
iload 5 /* runCount */
if_icmplt 48
52: .line 594
iload 8 /* runIndex */
iload 5 /* runCount */
if_icmpge 57
53: .line 595
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iand
ifeq 54
iconst_0
goto 55
StackMap locals:
StackMap stack:
54: iload 8 /* runIndex */
StackMap locals:
StackMap stack: int
55: istore 12 /* trailingRun */
start local 12 // int trailingRun
56: .line 596
aload 7 /* runs */
iload 12 /* trailingRun */
aaload
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
putfield sun.text.bidi.BidiRun.level:B
end local 12 // int trailingRun
end local 11 // byte maxLevel
end local 10 // byte minLevel
end local 9 // int start
end local 8 // int runIndex
end local 7 // sun.text.bidi.BidiRun[] runs
end local 6 // byte level
end local 5 // int runCount
end local 4 // int i
end local 3 // byte[] levels
end local 2 // int limit
end local 1 // int length
57: .line 602
StackMap locals: sun.text.bidi.BidiBase
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.insertPoints:Lsun/text/bidi/BidiBase$InsertPoints;
getfield sun.text.bidi.BidiBase$InsertPoints.size:I
ifle 65
58: .line 605
iconst_0
istore 3 /* ip */
start local 3 // int ip
59: goto 64
60: .line 606
StackMap locals: sun.text.bidi.BidiBase top top int
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.insertPoints:Lsun/text/bidi/BidiBase$InsertPoints;
getfield sun.text.bidi.BidiBase$InsertPoints.points:[Lsun/text/bidi/BidiBase$Point;
iload 3 /* ip */
aaload
astore 1 /* point */
start local 1 // sun.text.bidi.BidiBase$Point point
61: .line 607
aload 0 /* bidiBase */
aload 1 /* point */
getfield sun.text.bidi.BidiBase$Point.pos:I
invokestatic sun.text.bidi.BidiLine.getRunFromLogicalIndex:(Lsun/text/bidi/BidiBase;I)I
istore 2 /* runIndex */
start local 2 // int runIndex
62: .line 608
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 2 /* runIndex */
aaload
dup
getfield sun.text.bidi.BidiRun.insertRemove:I
aload 1 /* point */
getfield sun.text.bidi.BidiBase$Point.flag:I
ior
putfield sun.text.bidi.BidiRun.insertRemove:I
63: .line 605
iinc 3 /* ip */ 1
end local 2 // int runIndex
end local 1 // sun.text.bidi.BidiBase$Point point
StackMap locals:
StackMap stack:
64: iload 3 /* ip */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.insertPoints:Lsun/text/bidi/BidiBase$InsertPoints;
getfield sun.text.bidi.BidiBase$InsertPoints.size:I
if_icmplt 60
end local 3 // int ip
65: .line 613
StackMap locals: sun.text.bidi.BidiBase
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.controlCount:I
ifle 74
66: .line 616
iconst_0
istore 2 /* ic */
start local 2 // int ic
67: goto 73
68: .line 617
StackMap locals: sun.text.bidi.BidiBase top int
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.text:[C
iload 2 /* ic */
caload
istore 3 /* c */
start local 3 // char c
69: .line 618
iload 3 /* c */
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifeq 72
70: .line 619
aload 0 /* bidiBase */
iload 2 /* ic */
invokestatic sun.text.bidi.BidiLine.getRunFromLogicalIndex:(Lsun/text/bidi/BidiBase;I)I
istore 1 /* runIndex */
start local 1 // int runIndex
71: .line 620
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 1 /* runIndex */
aaload
dup
getfield sun.text.bidi.BidiRun.insertRemove:I
iconst_1
isub
putfield sun.text.bidi.BidiRun.insertRemove:I
end local 1 // int runIndex
72: .line 616
StackMap locals: int
StackMap stack:
iinc 2 /* ic */ 1
end local 3 // char c
StackMap locals:
StackMap stack:
73: iload 2 /* ic */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
if_icmplt 68
end local 2 // int ic
74: .line 624
StackMap locals: sun.text.bidi.BidiBase
StackMap stack:
return
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 75 0 bidiBase Lsun/text/bidi/BidiBase;
6 57 1 length I
9 57 2 limit I
7 57 3 levels [B
11 57 4 i I
10 57 5 runCount I
8 57 6 level B
26 57 7 runs [Lsun/text/bidi/BidiRun;
27 57 8 runIndex I
29 57 9 start I
21 57 10 minLevel B
22 57 11 maxLevel B
56 57 12 trailingRun I
61 64 1 point Lsun/text/bidi/BidiBase$Point;
62 64 2 runIndex I
59 65 3 ip I
71 72 1 runIndex I
67 74 2 ic I
69 73 3 c C
MethodParameters:
Name Flags
bidiBase
static int[] prepareReorder(byte[], byte[], byte[]);
descriptor: ([B[B[B)[I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 // byte[] levels
start local 1 // byte[] pMinLevel
start local 2 // byte[] pMaxLevel
0: .line 631
aload 0 /* levels */
ifnull 1
aload 0 /* levels */
arraylength
ifgt 2
1: .line 632
StackMap locals:
StackMap stack:
aconst_null
areturn
2: .line 636
StackMap locals:
StackMap stack:
bipush 126
istore 5 /* minLevel */
start local 5 // byte minLevel
3: .line 637
iconst_0
istore 6 /* maxLevel */
start local 6 // byte maxLevel
4: .line 638
aload 0 /* levels */
arraylength
istore 3 /* start */
start local 3 // int start
5: goto 13
6: .line 639
StackMap locals: byte[] byte[] byte[] int top int int
StackMap stack:
aload 0 /* levels */
iinc 3 /* start */ -1
iload 3 /* start */
baload
istore 4 /* level */
start local 4 // byte level
7: .line 640
iload 4 /* level */
iflt 8
iload 4 /* level */
bipush 126
if_icmple 9
8: .line 641
StackMap locals: byte[] byte[] byte[] int int int int
StackMap stack:
aconst_null
areturn
9: .line 643
StackMap locals:
StackMap stack:
iload 4 /* level */
iload 5 /* minLevel */
if_icmpge 11
10: .line 644
iload 4 /* level */
istore 5 /* minLevel */
11: .line 646
StackMap locals:
StackMap stack:
iload 4 /* level */
iload 6 /* maxLevel */
if_icmple 13
12: .line 647
iload 4 /* level */
istore 6 /* maxLevel */
end local 4 // byte level
13: .line 638
StackMap locals: byte[] byte[] byte[] int top int int
StackMap stack:
iload 3 /* start */
ifgt 6
14: .line 650
aload 1 /* pMinLevel */
iconst_0
iload 5 /* minLevel */
bastore
15: .line 651
aload 2 /* pMaxLevel */
iconst_0
iload 6 /* maxLevel */
bastore
16: .line 654
aload 0 /* levels */
arraylength
newarray 10
astore 7 /* indexMap */
start local 7 // int[] indexMap
17: .line 655
aload 0 /* levels */
arraylength
istore 3 /* start */
goto 20
18: .line 656
StackMap locals: int[]
StackMap stack:
iinc 3 /* start */ -1
19: .line 657
aload 7 /* indexMap */
iload 3 /* start */
iload 3 /* start */
iastore
20: .line 655
StackMap locals:
StackMap stack:
iload 3 /* start */
ifgt 18
21: .line 660
aload 7 /* indexMap */
areturn
end local 7 // int[] indexMap
end local 6 // byte maxLevel
end local 5 // byte minLevel
end local 3 // int start
end local 2 // byte[] pMaxLevel
end local 1 // byte[] pMinLevel
end local 0 // byte[] levels
LocalVariableTable:
Start End Slot Name Signature
0 22 0 levels [B
0 22 1 pMinLevel [B
0 22 2 pMaxLevel [B
5 22 3 start I
7 13 4 level B
3 22 5 minLevel B
4 22 6 maxLevel B
17 22 7 indexMap [I
MethodParameters:
Name Flags
levels
pMinLevel
pMaxLevel
static int[] reorderVisual(byte[]);
descriptor: ([B)[I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 // byte[] levels
0: .line 665
iconst_1
newarray 8
astore 1 /* aMinLevel */
start local 1 // byte[] aMinLevel
1: .line 666
iconst_1
newarray 8
astore 2 /* aMaxLevel */
start local 2 // byte[] aMaxLevel
2: .line 670
aload 0 /* levels */
aload 1 /* aMinLevel */
aload 2 /* aMaxLevel */
invokestatic sun.text.bidi.BidiLine.prepareReorder:([B[B[B)[I
astore 9 /* indexMap */
start local 9 // int[] indexMap
3: .line 671
aload 9 /* indexMap */
ifnonnull 5
4: .line 672
aconst_null
areturn
5: .line 675
StackMap locals: byte[] byte[] byte[] top top top top top top int[]
StackMap stack:
aload 1 /* aMinLevel */
iconst_0
baload
istore 7 /* minLevel */
start local 7 // byte minLevel
6: .line 676
aload 2 /* aMaxLevel */
iconst_0
baload
istore 8 /* maxLevel */
start local 8 // byte maxLevel
7: .line 679
iload 7 /* minLevel */
iload 8 /* maxLevel */
if_icmpne 9
iload 7 /* minLevel */
iconst_1
iand
ifne 9
8: .line 680
aload 9 /* indexMap */
areturn
9: .line 684
StackMap locals: byte[] byte[] byte[] top top top top int int int[]
StackMap stack:
iload 7 /* minLevel */
iconst_1
ior
i2b
istore 7 /* minLevel */
10: .line 688
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* start */
start local 3 // int start
11: .line 694
goto 13
12: .line 695
StackMap locals: byte[] byte[] byte[] int top top top int int int[]
StackMap stack:
iinc 3 /* start */ 1
13: .line 694
StackMap locals:
StackMap stack:
iload 3 /* start */
aload 0 /* levels */
arraylength
if_icmpge 14
aload 0 /* levels */
iload 3 /* start */
baload
iload 8 /* maxLevel */
if_icmplt 12
14: .line 697
StackMap locals:
StackMap stack:
iload 3 /* start */
aload 0 /* levels */
arraylength
if_icmplt 16
15: .line 698
goto 30
16: .line 702
StackMap locals:
StackMap stack:
iload 3 /* start */
istore 5 /* limit */
start local 5 // int limit
StackMap locals: byte[] byte[] byte[] int top int top int int int[]
StackMap stack:
17: iinc 5 /* limit */ 1
iload 5 /* limit */
aload 0 /* levels */
arraylength
if_icmpge 18
aload 0 /* levels */
iload 5 /* limit */
baload
iload 8 /* maxLevel */
if_icmpge 17
18: .line 710
StackMap locals:
StackMap stack:
iload 5 /* limit */
iconst_1
isub
istore 4 /* end */
start local 4 // int end
19: .line 711
goto 25
20: .line 712
StackMap locals: byte[] byte[] byte[] int int int top int int int[]
StackMap stack:
aload 9 /* indexMap */
iload 3 /* start */
iaload
istore 6 /* temp */
start local 6 // int temp
21: .line 713
aload 9 /* indexMap */
iload 3 /* start */
aload 9 /* indexMap */
iload 4 /* end */
iaload
iastore
22: .line 714
aload 9 /* indexMap */
iload 4 /* end */
iload 6 /* temp */
iastore
23: .line 716
iinc 3 /* start */ 1
24: .line 717
iinc 4 /* end */ -1
end local 6 // int temp
25: .line 711
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 4 /* end */
if_icmplt 20
26: .line 720
iload 5 /* limit */
aload 0 /* levels */
arraylength
if_icmpne 28
27: .line 721
goto 30
28: .line 723
StackMap locals:
StackMap stack:
iload 5 /* limit */
iconst_1
iadd
istore 3 /* start */
end local 5 // int limit
end local 4 // int end
29: .line 691
goto 13
30: .line 726
StackMap locals: byte[] byte[] byte[] int top top top int int int[]
StackMap stack:
iload 8 /* maxLevel */
iconst_1
isub
i2b
dup
istore 8 /* maxLevel */
iload 7 /* minLevel */
31: .line 687
if_icmpge 10
32: .line 728
aload 9 /* indexMap */
areturn
end local 9 // int[] indexMap
end local 8 // byte maxLevel
end local 7 // byte minLevel
end local 3 // int start
end local 2 // byte[] aMaxLevel
end local 1 // byte[] aMinLevel
end local 0 // byte[] levels
LocalVariableTable:
Start End Slot Name Signature
0 33 0 levels [B
1 33 1 aMinLevel [B
2 33 2 aMaxLevel [B
11 33 3 start I
19 29 4 end I
17 29 5 limit I
21 25 6 temp I
6 33 7 minLevel B
7 33 8 maxLevel B
3 33 9 indexMap [I
MethodParameters:
Name Flags
levels
static int[] getVisualMap(sun.text.bidi.BidiBase);
descriptor: (Lsun/text/bidi/BidiBase;)[I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=18, args_size=1
start local 0 // sun.text.bidi.BidiBase bidiBase
0: .line 734
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 1 /* runs */
start local 1 // sun.text.bidi.BidiRun[] runs
1: .line 736
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
if_icmple 2
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
goto 3
2: .line 737
StackMap locals: sun.text.bidi.BidiRun[]
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
3: .line 736
StackMap locals:
StackMap stack: int
istore 5 /* allocLength */
start local 5 // int allocLength
4: .line 738
iload 5 /* allocLength */
newarray 10
astore 6 /* indexMap */
start local 6 // int[] indexMap
5: .line 740
iconst_0
istore 3 /* visualStart */
start local 3 // int visualStart
6: .line 741
iconst_0
istore 7 /* idx */
start local 7 // int idx
7: .line 742
iconst_0
istore 8 /* j */
start local 8 // int j
8: goto 21
9: .line 743
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int
StackMap stack:
aload 1 /* runs */
iload 8 /* j */
aaload
getfield sun.text.bidi.BidiRun.start:I
istore 2 /* logicalStart */
start local 2 // int logicalStart
10: .line 744
aload 1 /* runs */
iload 8 /* j */
aaload
getfield sun.text.bidi.BidiRun.limit:I
istore 4 /* visualLimit */
start local 4 // int visualLimit
11: .line 745
aload 1 /* runs */
iload 8 /* j */
aaload
invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
ifeq 16
12: .line 747
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] int int int int int[] int int
StackMap stack:
aload 6 /* indexMap */
iload 7 /* idx */
iinc 7 /* idx */ 1
iload 2 /* logicalStart */
iinc 2 /* logicalStart */ 1
iastore
13: .line 748
iinc 3 /* visualStart */ 1
iload 3 /* visualStart */
iload 4 /* visualLimit */
14: .line 746
if_icmplt 12
15: .line 749
goto 20
16: .line 750
StackMap locals:
StackMap stack:
iload 2 /* logicalStart */
iload 4 /* visualLimit */
iload 3 /* visualStart */
isub
iadd
istore 2 /* logicalStart */
17: .line 752
StackMap locals:
StackMap stack:
aload 6 /* indexMap */
iload 7 /* idx */
iinc 7 /* idx */ 1
iinc 2 /* logicalStart */ -1
iload 2 /* logicalStart */
iastore
18: .line 753
iinc 3 /* visualStart */ 1
iload 3 /* visualStart */
iload 4 /* visualLimit */
19: .line 751
if_icmplt 17
20: .line 742
StackMap locals:
StackMap stack:
iinc 8 /* j */ 1
end local 4 // int visualLimit
end local 2 // int logicalStart
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int
StackMap stack:
21: iload 8 /* j */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
if_icmplt 9
end local 8 // int j
22: .line 758
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.insertPoints:Lsun/text/bidi/BidiBase$InsertPoints;
getfield sun.text.bidi.BidiBase$InsertPoints.size:I
ifle 55
23: .line 759
iconst_0
istore 8 /* markFound */
start local 8 // int markFound
24: aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 9 /* runCount */
start local 9 // int runCount
25: .line 761
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 1 /* runs */
26: .line 763
iconst_0
istore 11 /* i */
start local 11 // int i
27: goto 34
28: .line 764
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int top int
StackMap stack:
aload 1 /* runs */
iload 11 /* i */
aaload
getfield sun.text.bidi.BidiRun.insertRemove:I
istore 10 /* insertRemove */
start local 10 // int insertRemove
29: .line 765
iload 10 /* insertRemove */
iconst_5
iand
ifle 31
30: .line 766
iinc 8 /* markFound */ 1
31: .line 768
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int int int
StackMap stack:
iload 10 /* insertRemove */
bipush 10
iand
ifle 33
32: .line 769
iinc 8 /* markFound */ 1
33: .line 763
StackMap locals:
StackMap stack:
iinc 11 /* i */ 1
end local 10 // int insertRemove
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int top int
StackMap stack:
34: iload 11 /* i */
iload 9 /* runCount */
if_icmplt 28
35: .line 773
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
istore 13 /* k */
start local 13 // int k
36: .line 774
iload 9 /* runCount */
iconst_1
isub
istore 11 /* i */
goto 53
37: .line 775
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int top int top int
StackMap stack:
aload 1 /* runs */
iload 11 /* i */
aaload
getfield sun.text.bidi.BidiRun.insertRemove:I
istore 10 /* insertRemove */
start local 10 // int insertRemove
38: .line 776
iload 10 /* insertRemove */
bipush 10
iand
ifle 41
39: .line 777
aload 6 /* indexMap */
iinc 13 /* k */ -1
iload 13 /* k */
iconst_m1
iastore
40: .line 778
iinc 8 /* markFound */ -1
41: .line 780
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int int int top int
StackMap stack:
iload 11 /* i */
ifle 42
aload 1 /* runs */
iload 11 /* i */
iconst_1
isub
aaload
getfield sun.text.bidi.BidiRun.limit:I
goto 43
StackMap locals:
StackMap stack:
42: iconst_0
StackMap locals:
StackMap stack: int
43: istore 3 /* visualStart */
44: .line 781
aload 1 /* runs */
iload 11 /* i */
aaload
getfield sun.text.bidi.BidiRun.limit:I
iconst_1
isub
istore 12 /* j */
start local 12 // int j
45: goto 48
46: .line 782
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int int int int int
StackMap stack:
aload 6 /* indexMap */
iinc 13 /* k */ -1
iload 13 /* k */
aload 6 /* indexMap */
iload 12 /* j */
iaload
iastore
47: .line 781
iinc 12 /* j */ -1
StackMap locals:
StackMap stack:
48: iload 12 /* j */
iload 3 /* visualStart */
if_icmplt 49
iload 8 /* markFound */
ifgt 46
49: .line 784
StackMap locals:
StackMap stack:
iload 10 /* insertRemove */
iconst_5
iand
ifle 52
50: .line 785
aload 6 /* indexMap */
iinc 13 /* k */ -1
iload 13 /* k */
iconst_m1
iastore
51: .line 786
iinc 8 /* markFound */ -1
52: .line 774
StackMap locals:
StackMap stack:
iinc 11 /* i */ -1
end local 12 // int j
end local 10 // int insertRemove
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int int top int top int
StackMap stack:
53: iload 11 /* i */
iflt 90
iload 8 /* markFound */
ifgt 37
end local 13 // int k
end local 11 // int i
end local 9 // int runCount
end local 8 // int markFound
54: .line 789
goto 90
55: .line 790
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.controlCount:I
ifle 90
56: .line 791
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 8 /* runCount */
start local 8 // int runCount
57: .line 795
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 1 /* runs */
58: .line 796
iconst_0
istore 3 /* visualStart */
59: .line 798
iconst_0
istore 14 /* k */
start local 14 // int k
60: .line 799
iconst_0
istore 12 /* i */
start local 12 // int i
61: goto 89
62: .line 800
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int top top top int top int
StackMap stack:
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.limit:I
iload 3 /* visualStart */
isub
istore 11 /* length */
start local 11 // int length
63: .line 801
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.insertRemove:I
istore 10 /* insertRemove */
start local 10 // int insertRemove
64: .line 803
iload 10 /* insertRemove */
ifne 67
iload 14 /* k */
iload 3 /* visualStart */
if_icmpne 67
65: .line 804
iload 14 /* k */
iload 11 /* length */
iadd
istore 14 /* k */
66: .line 805
goto 88
67: .line 808
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int top int int int top int
StackMap stack:
iload 10 /* insertRemove */
ifne 75
68: .line 809
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.limit:I
istore 4 /* visualLimit */
start local 4 // int visualLimit
69: .line 810
iload 3 /* visualStart */
istore 13 /* j */
start local 13 // int j
70: goto 73
71: .line 811
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int int int int[] int int top int int int int int
StackMap stack:
aload 6 /* indexMap */
iload 14 /* k */
iinc 14 /* k */ 1
aload 6 /* indexMap */
iload 13 /* j */
iaload
iastore
72: .line 810
iinc 13 /* j */ 1
StackMap locals:
StackMap stack:
73: iload 13 /* j */
iload 4 /* visualLimit */
if_icmplt 71
74: .line 813
goto 88
end local 13 // int j
end local 4 // int visualLimit
75: .line 815
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int top int int int top int
StackMap stack:
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.start:I
istore 2 /* logicalStart */
start local 2 // int logicalStart
76: .line 816
aload 1 /* runs */
iload 12 /* i */
aaload
invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
istore 17 /* evenRun */
start local 17 // boolean evenRun
77: .line 817
iload 2 /* logicalStart */
iload 11 /* length */
iadd
iconst_1
isub
istore 9 /* logicalEnd */
start local 9 // int logicalEnd
78: .line 818
iconst_0
istore 13 /* j */
start local 13 // int j
79: goto 87
80: .line 819
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] int int top int int[] int int int int int int int int top top int
StackMap stack:
iload 17 /* evenRun */
ifeq 81
iload 2 /* logicalStart */
iload 13 /* j */
iadd
goto 82
StackMap locals:
StackMap stack:
81: iload 9 /* logicalEnd */
iload 13 /* j */
isub
StackMap locals:
StackMap stack: int
82: istore 15 /* m */
start local 15 // int m
83: .line 820
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.text:[C
iload 15 /* m */
caload
istore 16 /* uchar */
start local 16 // char uchar
84: .line 821
iload 16 /* uchar */
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifne 86
85: .line 822
aload 6 /* indexMap */
iload 14 /* k */
iinc 14 /* k */ 1
iload 15 /* m */
iastore
86: .line 818
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] int int top int int[] int int int int int int int int int int int
StackMap stack:
iinc 13 /* j */ 1
end local 16 // char uchar
end local 15 // int m
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] int int top int int[] int int int int int int int int top top int
StackMap stack:
87: iload 13 /* j */
iload 11 /* length */
if_icmplt 80
end local 17 // boolean evenRun
end local 13 // int j
end local 9 // int logicalEnd
end local 2 // int logicalStart
88: .line 799
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int top int int int top int
StackMap stack:
iinc 12 /* i */ 1
iload 3 /* visualStart */
iload 11 /* length */
iadd
istore 3 /* visualStart */
end local 11 // int length
end local 10 // int insertRemove
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int int top top top int top int
StackMap stack:
89: iload 12 /* i */
iload 8 /* runCount */
if_icmplt 62
end local 14 // int k
end local 12 // int i
end local 8 // int runCount
90: .line 827
StackMap locals: sun.text.bidi.BidiBase sun.text.bidi.BidiRun[] top int top int int[] int
StackMap stack:
iload 5 /* allocLength */
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
if_icmpne 92
91: .line 828
aload 6 /* indexMap */
areturn
92: .line 830
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
newarray 10
astore 8 /* newMap */
start local 8 // int[] newMap
93: .line 831
aload 6 /* indexMap */
iconst_0
aload 8 /* newMap */
iconst_0
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
94: .line 832
aload 8 /* newMap */
areturn
end local 8 // int[] newMap
end local 7 // int idx
end local 6 // int[] indexMap
end local 5 // int allocLength
end local 3 // int visualStart
end local 1 // sun.text.bidi.BidiRun[] runs
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 95 0 bidiBase Lsun/text/bidi/BidiBase;
1 95 1 runs [Lsun/text/bidi/BidiRun;
10 21 2 logicalStart I
76 88 2 logicalStart I
6 95 3 visualStart I
11 21 4 visualLimit I
69 75 4 visualLimit I
4 95 5 allocLength I
5 95 6 indexMap [I
7 95 7 idx I
8 22 8 j I
24 54 8 markFound I
25 54 9 runCount I
29 34 10 insertRemove I
38 53 10 insertRemove I
27 54 11 i I
45 53 12 j I
36 54 13 k I
57 90 8 runCount I
78 88 9 logicalEnd I
64 89 10 insertRemove I
63 89 11 length I
61 90 12 i I
70 75 13 j I
79 88 13 j I
60 90 14 k I
83 87 15 m I
84 87 16 uchar C
77 88 17 evenRun Z
93 95 8 newMap [I
MethodParameters:
Name Flags
bidiBase
}
SourceFile: "BidiLine.java"
InnerClasses:
InsertPoints = sun.text.bidi.BidiBase$InsertPoints of sun.text.bidi.BidiBase
Point = sun.text.bidi.BidiBase$Point of sun.text.bidi.BidiBase