public final class sun.text.bidi.BidiLine
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.text.bidi.BidiLine
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.text.bidi.BidiLine this
0: .line 45
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 114
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.dirProps:[B
astore 1 /* dirProps */
start local 1 // byte[] dirProps
1: .line 115
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 2 /* levels */
start local 2 // byte[] levels
2: .line 116
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 3 /* start */
start local 3 // int start
3: .line 117
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
istore 4 /* paraLevel */
start local 4 // byte paraLevel
4: .line 125
aload 1 /* dirProps */
iload 3 /* start */
iconst_1
isub
baload
invokestatic sun.text.bidi.BidiBase.NoContextRTL:(B)B
bipush 7
if_icmpne 8
5: .line 126
aload 0 /* bidiBase */
iload 3 /* start */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
6: .line 127
return
7: .line 132
StackMap locals: sun.text.bidi.BidiBase byte[] byte[] int int
StackMap stack:
iinc 3 /* start */ -1
8: .line 130
StackMap locals:
StackMap stack:
iload 3 /* start */
ifle 12
9: .line 131
aload 1 /* dirProps */
iload 3 /* start */
iconst_1
isub
baload
invokestatic sun.text.bidi.BidiBase.DirPropFlagNC:(B)I
getstatic sun.text.bidi.BidiBase.MASK_WS:I
iand
ifne 7
10: .line 136
goto 12
11: .line 137
StackMap locals:
StackMap stack:
iinc 3 /* start */ -1
12: .line 136
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 140
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
iload 3 /* start */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
14: .line 141
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
public static java.text.Bidi setLine(java.text.Bidi, sun.text.bidi.BidiBase, java.text.Bidi, sun.text.bidi.BidiBase, int, int);
descriptor: (Ljava/text/Bidi;Lsun/text/bidi/BidiBase;Ljava/text/Bidi;Lsun/text/bidi/BidiBase;II)Ljava/text/Bidi;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=12, args_size=6
start local 0 // java.text.Bidi bidi
start local 1 // sun.text.bidi.BidiBase paraBidi
start local 2 // java.text.Bidi newBidi
start local 3 // sun.text.bidi.BidiBase newBidiBase
start local 4 // int start
start local 5 // int limit
0: .line 148
aload 3 /* newBidiBase */
astore 7 /* lineBidi */
start local 7 // sun.text.bidi.BidiBase lineBidi
1: .line 156
aload 7 /* lineBidi */
aload 7 /* lineBidi */
2: .line 157
aload 7 /* lineBidi */
iload 5 /* limit */
iload 4 /* start */
isub
dup_x1
putfield sun.text.bidi.BidiBase.resultLength:I
3: .line 156
dup_x1
putfield sun.text.bidi.BidiBase.originalLength:I
dup_x1
putfield sun.text.bidi.BidiBase.length:I
istore 6 /* length */
start local 6 // int length
4: .line 159
aload 7 /* lineBidi */
iload 6 /* length */
newarray 5
putfield sun.text.bidi.BidiBase.text:[C
5: .line 160
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.text:[C
iload 4 /* start */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.text:[C
iconst_0
iload 6 /* length */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: .line 161
aload 7 /* lineBidi */
aload 1 /* paraBidi */
iload 4 /* start */
invokevirtual sun.text.bidi.BidiBase.GetParaLevelAt:(I)B
putfield sun.text.bidi.BidiBase.paraLevel:B
7: .line 162
aload 7 /* lineBidi */
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.paraCount:I
putfield sun.text.bidi.BidiBase.paraCount:I
8: .line 163
aload 7 /* lineBidi */
iconst_0
anewarray sun.text.bidi.BidiRun
putfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
9: .line 164
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.controlCount:I
ifle 17
10: .line 166
iload 4 /* start */
istore 8 /* j */
start local 8 // int j
11: goto 15
12: .line 167
StackMap locals: int sun.text.bidi.BidiBase int
StackMap stack:
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.text:[C
iload 8 /* j */
caload
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifeq 14
13: .line 168
aload 7 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.controlCount:I
iconst_1
iadd
putfield sun.text.bidi.BidiBase.controlCount:I
14: .line 166
StackMap locals:
StackMap stack:
iinc 8 /* j */ 1
StackMap locals:
StackMap stack:
15: iload 8 /* j */
iload 5 /* limit */
if_icmplt 12
16: .line 171
aload 7 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.resultLength:I
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.controlCount:I
isub
putfield sun.text.bidi.BidiBase.resultLength:I
end local 8 // int j
17: .line 174
StackMap locals:
StackMap stack:
aload 7 /* lineBidi */
iload 6 /* length */
invokevirtual sun.text.bidi.BidiBase.getDirPropsMemory:(I)V
18: .line 175
aload 7 /* lineBidi */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.dirPropsMemory:[B
putfield sun.text.bidi.BidiBase.dirProps:[B
19: .line 176
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.dirProps:[B
iload 4 /* start */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.dirProps:[B
iconst_0
20: .line 177
iload 6 /* length */
21: .line 176
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: .line 179
aload 7 /* lineBidi */
iload 6 /* length */
invokevirtual sun.text.bidi.BidiBase.getLevelsMemory:(I)V
23: .line 180
aload 7 /* lineBidi */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.levelsMemory:[B
putfield sun.text.bidi.BidiBase.levels:[B
24: .line 181
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.levels:[B
iload 4 /* start */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.levels:[B
iconst_0
25: .line 182
iload 6 /* length */
26: .line 181
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: .line 183
aload 7 /* lineBidi */
iconst_m1
putfield sun.text.bidi.BidiBase.runCount:I
28: .line 185
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.direction:B
iconst_2
if_icmpeq 38
29: .line 187
aload 7 /* lineBidi */
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.direction:B
putfield sun.text.bidi.BidiBase.direction:B
30: .line 194
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 4 /* start */
if_icmpgt 33
31: .line 195
aload 7 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
32: .line 196
goto 66
StackMap locals:
StackMap stack:
33: aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 5 /* limit */
if_icmpge 36
34: .line 197
aload 7 /* lineBidi */
aload 1 /* paraBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
iload 4 /* start */
isub
putfield sun.text.bidi.BidiBase.trailingWSStart:I
35: .line 198
goto 66
36: .line 199
StackMap locals:
StackMap stack:
aload 7 /* lineBidi */
iload 6 /* length */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
37: .line 201
goto 66
38: .line 202
StackMap locals:
StackMap stack:
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.levels:[B
astore 8 /* levels */
start local 8 // byte[] levels
39: .line 206
aload 7 /* lineBidi */
invokestatic sun.text.bidi.BidiLine.setTrailingWSStart:(Lsun/text/bidi/BidiBase;)V
40: .line 207
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 10 /* trailingWSStart */
start local 10 // int trailingWSStart
41: .line 210
iload 10 /* trailingWSStart */
ifne 44
42: .line 212
aload 7 /* lineBidi */
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iand
i2b
putfield sun.text.bidi.BidiBase.direction:B
43: .line 213
goto 57
44: .line 215
StackMap locals: java.text.Bidi sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int sun.text.bidi.BidiBase byte[] top int
StackMap stack:
aload 8 /* levels */
iconst_0
baload
iconst_1
iand
i2b
istore 11 /* level */
start local 11 // byte level
45: .line 219
iload 10 /* trailingWSStart */
iload 6 /* length */
if_icmpge 49
46: .line 220
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iand
iload 11 /* level */
if_icmpeq 49
47: .line 223
aload 7 /* lineBidi */
iconst_2
putfield sun.text.bidi.BidiBase.direction:B
48: .line 224
goto 57
49: .line 227
StackMap locals: int
StackMap stack:
iconst_1
istore 9 /* i */
start local 9 // int i
50: .line 228
StackMap locals: java.text.Bidi sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int sun.text.bidi.BidiBase byte[] int int int
StackMap stack:
iload 9 /* i */
iload 10 /* trailingWSStart */
if_icmpne 53
51: .line 230
aload 7 /* lineBidi */
iload 11 /* level */
putfield sun.text.bidi.BidiBase.direction:B
52: .line 231
goto 57
53: .line 232
StackMap locals:
StackMap stack:
aload 8 /* levels */
iload 9 /* i */
baload
iconst_1
iand
iload 11 /* level */
if_icmpeq 56
54: .line 233
aload 7 /* lineBidi */
iconst_2
putfield sun.text.bidi.BidiBase.direction:B
55: .line 234
goto 57
56: .line 227
StackMap locals:
StackMap stack:
iinc 9 /* i */ 1
goto 50
end local 11 // byte level
end local 9 // int i
57: .line 240
StackMap locals: java.text.Bidi sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int sun.text.bidi.BidiBase byte[] top int
StackMap stack:
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.direction:B
tableswitch { // 0 - 1
0: 58
1: 63
default: 66
}
58: .line 243
StackMap locals:
StackMap stack:
aload 7 /* lineBidi */
59: .line 244
aload 7 /* lineBidi */
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
iadd
bipush -2
iand
i2b
60: .line 243
putfield sun.text.bidi.BidiBase.paraLevel:B
61: .line 248
aload 7 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
62: .line 249
goto 66
63: .line 252
StackMap locals:
StackMap stack:
aload 7 /* lineBidi */
dup
getfield sun.text.bidi.BidiBase.paraLevel:B
iconst_1
ior
i2b
putfield sun.text.bidi.BidiBase.paraLevel:B
64: .line 256
aload 7 /* lineBidi */
iconst_0
putfield sun.text.bidi.BidiBase.trailingWSStart:I
65: .line 257
goto 66
end local 10 // int trailingWSStart
end local 8 // byte[] levels
66: .line 263
StackMap locals: java.text.Bidi sun.text.bidi.BidiBase java.text.Bidi sun.text.bidi.BidiBase int int int sun.text.bidi.BidiBase
StackMap stack:
aload 3 /* newBidiBase */
aload 1 /* paraBidi */
putfield sun.text.bidi.BidiBase.paraBidi:Lsun/text/bidi/BidiBase;
67: .line 264
aload 2 /* newBidi */
areturn
end local 7 // sun.text.bidi.BidiBase lineBidi
end local 6 // int length
end local 5 // int limit
end local 4 // int start
end local 3 // sun.text.bidi.BidiBase newBidiBase
end local 2 // java.text.Bidi newBidi
end local 1 // sun.text.bidi.BidiBase paraBidi
end local 0 // java.text.Bidi bidi
LocalVariableTable:
Start End Slot Name Signature
0 68 0 bidi Ljava/text/Bidi;
0 68 1 paraBidi Lsun/text/bidi/BidiBase;
0 68 2 newBidi Ljava/text/Bidi;
0 68 3 newBidiBase Lsun/text/bidi/BidiBase;
0 68 4 start I
0 68 5 limit I
4 68 6 length I
1 68 7 lineBidi Lsun/text/bidi/BidiBase;
11 17 8 j I
39 66 8 levels [B
50 57 9 i I
41 66 10 trailingWSStart I
45 57 11 level B
MethodParameters:
Name Flags
bidi
paraBidi
newBidi
newBidiBase
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 270
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 271
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
iload 1 /* charIndex */
invokevirtual sun.text.bidi.BidiBase.GetParaLevelAt:(I)B
ireturn
2: .line 273
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 279
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 1 /* start */
start local 1 // int start
1: .line 280
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 2 /* length */
start local 2 // int length
2: .line 282
iload 1 /* start */
iload 2 /* length */
if_icmpeq 5
3: .line 293
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 296
aload 0 /* bidiBase */
iload 2 /* length */
putfield sun.text.bidi.BidiBase.trailingWSStart:I
5: .line 298
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 299
iload 2 /* length */
newarray 8
astore 3 /* levels */
start local 3 // byte[] levels
7: .line 300
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 301
aload 3 /* levels */
areturn
end local 3 // byte[] levels
9: .line 303
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 getLogicalRun(sun.text.bidi.BidiBase, int);
descriptor: (Lsun/text/bidi/BidiBase;I)Lsun/text/bidi/BidiRun;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=8, args_size=2
start local 0 // sun.text.bidi.BidiBase bidiBase
start local 1 // int logicalPosition
0: .line 311
new sun.text.bidi.BidiRun
dup
invokespecial sun.text.bidi.BidiRun.<init>:()V
astore 2 /* newRun */
start local 2 // sun.text.bidi.BidiRun newRun
1: .line 312
aload 0 /* bidiBase */
invokestatic sun.text.bidi.BidiLine.getRuns:(Lsun/text/bidi/BidiBase;)V
2: .line 313
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 4 /* runCount */
start local 4 // int runCount
3: .line 314
iconst_0
istore 5 /* visualStart */
start local 5 // int visualStart
4: iconst_0
istore 6 /* logicalLimit */
start local 6 // int logicalLimit
5: .line 315
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iconst_0
aaload
astore 3 /* iRun */
start local 3 // sun.text.bidi.BidiRun iRun
6: .line 317
iconst_0
istore 7 /* i */
start local 7 // int i
7: goto 15
8: .line 318
StackMap locals: sun.text.bidi.BidiBase int sun.text.bidi.BidiRun sun.text.bidi.BidiRun int int int int
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
iload 7 /* i */
aaload
astore 3 /* iRun */
9: .line 319
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.start:I
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.limit:I
iadd
iload 5 /* visualStart */
isub
istore 6 /* logicalLimit */
10: .line 320
iload 1 /* logicalPosition */
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.start:I
if_icmplt 13
11: .line 321
iload 1 /* logicalPosition */
iload 6 /* logicalLimit */
if_icmpge 13
12: .line 322
goto 16
13: .line 324
StackMap locals:
StackMap stack:
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.limit:I
istore 5 /* visualStart */
14: .line 317
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 7 /* i */
iload 4 /* runCount */
if_icmplt 8
end local 7 // int i
16: .line 326
StackMap locals:
StackMap stack:
aload 2 /* newRun */
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.start:I
putfield sun.text.bidi.BidiRun.start:I
17: .line 327
aload 2 /* newRun */
iload 6 /* logicalLimit */
putfield sun.text.bidi.BidiRun.limit:I
18: .line 328
aload 2 /* newRun */
aload 3 /* iRun */
getfield sun.text.bidi.BidiRun.level:B
putfield sun.text.bidi.BidiRun.level:B
19: .line 329
aload 2 /* newRun */
areturn
end local 6 // int logicalLimit
end local 5 // int visualStart
end local 4 // int runCount
end local 3 // sun.text.bidi.BidiRun iRun
end local 2 // sun.text.bidi.BidiRun newRun
end local 1 // int logicalPosition
end local 0 // sun.text.bidi.BidiBase bidiBase
LocalVariableTable:
Start End Slot Name Signature
0 20 0 bidiBase Lsun/text/bidi/BidiBase;
0 20 1 logicalPosition I
1 20 2 newRun Lsun/text/bidi/BidiRun;
6 20 3 iRun Lsun/text/bidi/BidiRun;
3 20 4 runCount I
4 20 5 visualStart I
5 20 6 logicalLimit I
7 16 7 i I
MethodParameters:
Name Flags
bidiBase
logicalPosition
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 335
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 336
aload 0 /* bidiBase */
iconst_1
putfield sun.text.bidi.BidiBase.runCount:I
2: .line 339
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 340
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 378
iload 2 /* maxLevel */
iload 1 /* minLevel */
iconst_1
ior
if_icmpgt 2
1: .line 379
return
2: .line 392
StackMap locals:
StackMap stack:
iload 1 /* minLevel */
iconst_1
iadd
i2b
istore 1 /* minLevel */
3: .line 394
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 395
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 5 /* levels */
start local 5 // byte[] levels
5: .line 396
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 9 /* runCount */
start local 9 // int runCount
6: .line 399
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 400
iinc 9 /* runCount */ -1
8: .line 403
goto 31
9: .line 404
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 410
goto 12
11: .line 411
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 410
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 413
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 9 /* runCount */
if_icmplt 15
14: .line 414
goto 31
15: .line 418
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 419
aload 5 /* levels */
aload 3 /* runs */
iload 8 /* limitRun */
aaload
getfield sun.text.bidi.BidiRun.start:I
baload
iload 2 /* maxLevel */
18: .line 418
if_icmpge 16
19: .line 422
StackMap locals:
StackMap stack:
iload 8 /* limitRun */
iconst_1
isub
istore 7 /* endRun */
start local 7 // int endRun
20: .line 423
goto 26
21: .line 424
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 425
aload 3 /* runs */
iload 6 /* firstRun */
aload 3 /* runs */
iload 7 /* endRun */
aaload
aastore
23: .line 426
aload 3 /* runs */
iload 7 /* endRun */
aload 4 /* tempRun */
aastore
24: .line 427
iinc 6 /* firstRun */ 1
25: .line 428
iinc 7 /* endRun */ -1
end local 4 // sun.text.bidi.BidiRun tempRun
26: .line 423
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 7 /* endRun */
if_icmplt 21
27: .line 431
iload 8 /* limitRun */
iload 9 /* runCount */
if_icmpne 29
28: .line 432
goto 31
29: .line 434
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 407
goto 12
end local 6 // int firstRun
31: .line 403
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 440
iload 1 /* minLevel */
iconst_1
iand
ifne 43
33: .line 441
iconst_0
istore 6 /* firstRun */
start local 6 // int firstRun
34: .line 444
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 445
iinc 9 /* runCount */ -1
36: .line 449
goto 42
37: .line 450
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 451
aload 3 /* runs */
iload 6 /* firstRun */
aload 3 /* runs */
iload 9 /* runCount */
aaload
aastore
39: .line 452
aload 3 /* runs */
iload 9 /* runCount */
aload 4 /* tempRun */
aastore
40: .line 453
iinc 6 /* firstRun */ 1
41: .line 454
iinc 9 /* runCount */ -1
end local 4 // sun.text.bidi.BidiRun tempRun
42: .line 449
StackMap locals:
StackMap stack:
iload 6 /* firstRun */
iload 9 /* runCount */
if_icmplt 37
end local 6 // int firstRun
43: .line 457
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 462
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 463
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 465
iconst_0
istore 5 /* i */
start local 5 // int i
4: goto 11
5: .line 466
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 467
aload 2 /* runs */
iload 5 /* i */
aaload
getfield sun.text.bidi.BidiRun.start:I
istore 7 /* logicalStart */
start local 7 // int logicalStart
7: .line 468
iload 1 /* logicalIndex */
iload 7 /* logicalStart */
if_icmplt 9
iload 1 /* logicalIndex */
iload 7 /* logicalStart */
iload 6 /* length */
iadd
if_icmpge 9
8: .line 469
iload 5 /* i */
ireturn
9: .line 471
StackMap locals: int int
StackMap stack:
iload 4 /* visualStart */
iload 6 /* length */
iadd
istore 4 /* visualStart */
10: .line 465
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 474
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 493
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
iflt 2
1: .line 494
return
2: .line 496
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.direction:B
iconst_2
if_icmpeq 5
3: .line 499
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 500
goto 57
5: .line 502
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.length:I
istore 1 /* length */
start local 1 // int length
6: .line 503
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.levels:[B
astore 3 /* levels */
start local 3 // byte[] levels
7: .line 505
bipush 126
istore 6 /* level */
start local 6 // byte level
8: .line 517
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.trailingWSStart:I
istore 2 /* limit */
start local 2 // int limit
9: .line 519
iconst_0
istore 5 /* runCount */
start local 5 // int runCount
10: .line 520
iconst_0
istore 4 /* i */
start local 4 // int i
11: goto 16
12: .line 522
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 523
iinc 5 /* runCount */ 1
14: .line 524
aload 3 /* levels */
iload 4 /* i */
baload
istore 6 /* level */
15: .line 520
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 4 /* i */
iload 2 /* limit */
if_icmplt 12
17: .line 532
iload 5 /* runCount */
iconst_1
if_icmpne 20
iload 2 /* limit */
iload 1 /* length */
if_icmpne 20
18: .line 534
aload 0 /* bidiBase */
aload 3 /* levels */
iconst_0
baload
invokestatic sun.text.bidi.BidiLine.getSingleRun:(Lsun/text/bidi/BidiBase;B)V
19: .line 535
goto 57
20: .line 539
StackMap locals:
StackMap stack:
bipush 62
istore 10 /* minLevel */
start local 10 // byte minLevel
21: .line 540
iconst_0
istore 11 /* maxLevel */
start local 11 // byte maxLevel
22: .line 543
iload 2 /* limit */
iload 1 /* length */
if_icmpge 24
23: .line 544
iinc 5 /* runCount */ 1
24: .line 548
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 549
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 557
iconst_0
istore 8 /* runIndex */
start local 8 // int runIndex
27: .line 560
iconst_0
istore 4 /* i */
28: .line 563
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 564
aload 3 /* levels */
iload 4 /* i */
baload
istore 6 /* level */
30: .line 565
iload 6 /* level */
iload 10 /* minLevel */
if_icmpge 32
31: .line 566
iload 6 /* level */
istore 10 /* minLevel */
32: .line 568
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 569
iload 6 /* level */
istore 11 /* maxLevel */
34: .line 573
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 576
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 577
iinc 8 /* runIndex */ 1
37: .line 578
iload 4 /* i */
iload 2 /* limit */
38: .line 561
if_icmplt 28
39: .line 580
iload 2 /* limit */
iload 1 /* length */
if_icmpge 43
40: .line 582
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 585
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
iload 10 /* minLevel */
if_icmpge 43
42: .line 586
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.paraLevel:B
istore 10 /* minLevel */
43: .line 591
StackMap locals:
StackMap stack:
aload 0 /* bidiBase */
aload 7 /* runs */
putfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
44: .line 592
aload 0 /* bidiBase */
iload 5 /* runCount */
putfield sun.text.bidi.BidiBase.runCount:I
45: .line 594
aload 0 /* bidiBase */
iload 10 /* minLevel */
iload 11 /* maxLevel */
invokestatic sun.text.bidi.BidiLine.reorderLine:(Lsun/text/bidi/BidiBase;BB)V
46: .line 598
iconst_0
istore 2 /* limit */
47: .line 599
iconst_0
istore 4 /* i */
goto 51
48: .line 600
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 601
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 599
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
51: iload 4 /* i */
iload 5 /* runCount */
if_icmplt 48
52: .line 608
iload 8 /* runIndex */
iload 5 /* runCount */
if_icmpge 57
53: .line 609
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 610
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 616
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 619
iconst_0
istore 3 /* ip */
start local 3 // int ip
59: goto 64
60: .line 620
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 621
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 622
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 619
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 627
StackMap locals: sun.text.bidi.BidiBase
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.controlCount:I
ifle 74
66: .line 630
iconst_0
istore 2 /* ic */
start local 2 // int ic
67: goto 73
68: .line 631
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 632
iload 3 /* c */
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifeq 72
70: .line 633
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 634
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 630
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 638
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 645
aload 0 /* levels */
ifnull 1
aload 0 /* levels */
arraylength
ifgt 2
1: .line 646
StackMap locals:
StackMap stack:
aconst_null
areturn
2: .line 650
StackMap locals:
StackMap stack:
bipush 62
istore 5 /* minLevel */
start local 5 // byte minLevel
3: .line 651
iconst_0
istore 6 /* maxLevel */
start local 6 // byte maxLevel
4: .line 652
aload 0 /* levels */
arraylength
istore 3 /* start */
start local 3 // int start
5: goto 13
6: .line 653
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 654
iload 4 /* level */
bipush 62
if_icmple 9
8: .line 655
aconst_null
areturn
9: .line 657
StackMap locals: byte[] byte[] byte[] int int int int
StackMap stack:
iload 4 /* level */
iload 5 /* minLevel */
if_icmpge 11
10: .line 658
iload 4 /* level */
istore 5 /* minLevel */
11: .line 660
StackMap locals:
StackMap stack:
iload 4 /* level */
iload 6 /* maxLevel */
if_icmple 13
12: .line 661
iload 4 /* level */
istore 6 /* maxLevel */
end local 4 // byte level
13: .line 652
StackMap locals: byte[] byte[] byte[] int top int int
StackMap stack:
iload 3 /* start */
ifgt 6
14: .line 664
aload 1 /* pMinLevel */
iconst_0
iload 5 /* minLevel */
bastore
15: .line 665
aload 2 /* pMaxLevel */
iconst_0
iload 6 /* maxLevel */
bastore
16: .line 668
aload 0 /* levels */
arraylength
newarray 10
astore 7 /* indexMap */
start local 7 // int[] indexMap
17: .line 669
aload 0 /* levels */
arraylength
istore 3 /* start */
goto 20
18: .line 670
StackMap locals: int[]
StackMap stack:
iinc 3 /* start */ -1
19: .line 671
aload 7 /* indexMap */
iload 3 /* start */
iload 3 /* start */
iastore
20: .line 669
StackMap locals:
StackMap stack:
iload 3 /* start */
ifgt 18
21: .line 674
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 679
iconst_1
newarray 8
astore 1 /* aMinLevel */
start local 1 // byte[] aMinLevel
1: .line 680
iconst_1
newarray 8
astore 2 /* aMaxLevel */
start local 2 // byte[] aMaxLevel
2: .line 684
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 685
aload 9 /* indexMap */
ifnonnull 5
4: .line 686
aconst_null
areturn
5: .line 689
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 690
aload 2 /* aMaxLevel */
iconst_0
baload
istore 8 /* maxLevel */
start local 8 // byte maxLevel
7: .line 693
iload 7 /* minLevel */
iload 8 /* maxLevel */
if_icmpne 9
iload 7 /* minLevel */
iconst_1
iand
ifne 9
8: .line 694
aload 9 /* indexMap */
areturn
9: .line 698
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 702
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* start */
start local 3 // int start
11: .line 708
goto 13
12: .line 709
StackMap locals: byte[] byte[] byte[] int top top top int int int[]
StackMap stack:
iinc 3 /* start */ 1
13: .line 708
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 711
StackMap locals:
StackMap stack:
iload 3 /* start */
aload 0 /* levels */
arraylength
if_icmplt 16
15: .line 712
goto 30
16: .line 716
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 724
StackMap locals:
StackMap stack:
iload 5 /* limit */
iconst_1
isub
istore 4 /* end */
start local 4 // int end
19: .line 725
goto 25
20: .line 726
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 727
aload 9 /* indexMap */
iload 3 /* start */
aload 9 /* indexMap */
iload 4 /* end */
iaload
iastore
22: .line 728
aload 9 /* indexMap */
iload 4 /* end */
iload 6 /* temp */
iastore
23: .line 730
iinc 3 /* start */ 1
24: .line 731
iinc 4 /* end */ -1
end local 6 // int temp
25: .line 725
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 4 /* end */
if_icmplt 20
26: .line 734
iload 5 /* limit */
aload 0 /* levels */
arraylength
if_icmpne 28
27: .line 735
goto 30
28: .line 737
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 705
goto 13
30: .line 740
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 701
if_icmpge 10
32: .line 742
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 748
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 750
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 751
StackMap locals: sun.text.bidi.BidiRun[]
StackMap stack:
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
3: .line 750
StackMap locals:
StackMap stack: int
istore 5 /* allocLength */
start local 5 // int allocLength
4: .line 752
iload 5 /* allocLength */
newarray 10
astore 6 /* indexMap */
start local 6 // int[] indexMap
5: .line 754
iconst_0
istore 3 /* visualStart */
start local 3 // int visualStart
6: .line 755
iconst_0
istore 7 /* idx */
start local 7 // int idx
7: .line 756
iconst_0
istore 8 /* j */
start local 8 // int j
8: goto 21
9: .line 757
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 758
aload 1 /* runs */
iload 8 /* j */
aaload
getfield sun.text.bidi.BidiRun.limit:I
istore 4 /* visualLimit */
start local 4 // int visualLimit
11: .line 759
aload 1 /* runs */
iload 8 /* j */
aaload
invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
ifeq 16
12: .line 761
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 762
iinc 3 /* visualStart */ 1
iload 3 /* visualStart */
iload 4 /* visualLimit */
14: .line 760
if_icmplt 12
15: .line 763
goto 20
16: .line 764
StackMap locals:
StackMap stack:
iload 2 /* logicalStart */
iload 4 /* visualLimit */
iload 3 /* visualStart */
isub
iadd
istore 2 /* logicalStart */
17: .line 766
StackMap locals:
StackMap stack:
aload 6 /* indexMap */
iload 7 /* idx */
iinc 7 /* idx */ 1
iinc 2 /* logicalStart */ -1
iload 2 /* logicalStart */
iastore
18: .line 767
iinc 3 /* visualStart */ 1
iload 3 /* visualStart */
iload 4 /* visualLimit */
19: .line 765
if_icmplt 17
20: .line 756
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 772
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 773
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 775
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 1 /* runs */
26: .line 777
iconst_0
istore 11 /* i */
start local 11 // int i
27: goto 34
28: .line 778
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 779
iload 10 /* insertRemove */
iconst_5
iand
ifle 31
30: .line 780
iinc 8 /* markFound */ 1
31: .line 782
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 783
iinc 8 /* markFound */ 1
33: .line 777
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 787
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.resultLength:I
istore 13 /* k */
start local 13 // int k
36: .line 788
iload 9 /* runCount */
iconst_1
isub
istore 11 /* i */
goto 53
37: .line 789
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 790
iload 10 /* insertRemove */
bipush 10
iand
ifle 41
39: .line 791
aload 6 /* indexMap */
iinc 13 /* k */ -1
iload 13 /* k */
iconst_m1
iastore
40: .line 792
iinc 8 /* markFound */ -1
41: .line 794
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 795
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 796
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 795
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 798
StackMap locals:
StackMap stack:
iload 10 /* insertRemove */
iconst_5
iand
ifle 52
50: .line 799
aload 6 /* indexMap */
iinc 13 /* k */ -1
iload 13 /* k */
iconst_m1
iastore
51: .line 800
iinc 8 /* markFound */ -1
52: .line 788
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 803
goto 90
55: .line 804
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 805
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runCount:I
istore 8 /* runCount */
start local 8 // int runCount
57: .line 809
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
astore 1 /* runs */
58: .line 810
iconst_0
istore 3 /* visualStart */
59: .line 812
iconst_0
istore 14 /* k */
start local 14 // int k
60: .line 813
iconst_0
istore 12 /* i */
start local 12 // int i
61: goto 89
62: .line 814
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 815
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.insertRemove:I
istore 10 /* insertRemove */
start local 10 // int insertRemove
64: .line 817
iload 10 /* insertRemove */
ifne 67
iload 14 /* k */
iload 3 /* visualStart */
if_icmpne 67
65: .line 818
iload 14 /* k */
iload 11 /* length */
iadd
istore 14 /* k */
66: .line 819
goto 88
67: .line 822
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 823
aload 1 /* runs */
iload 12 /* i */
aaload
getfield sun.text.bidi.BidiRun.limit:I
istore 4 /* visualLimit */
start local 4 // int visualLimit
69: .line 824
iload 3 /* visualStart */
istore 13 /* j */
start local 13 // int j
70: goto 73
71: .line 825
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 824
iinc 13 /* j */ 1
StackMap locals:
StackMap stack:
73: iload 13 /* j */
iload 4 /* visualLimit */
if_icmplt 71
74: .line 827
goto 88
end local 13 // int j
end local 4 // int visualLimit
75: .line 829
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 830
aload 1 /* runs */
iload 12 /* i */
aaload
invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
istore 17 /* evenRun */
start local 17 // boolean evenRun
77: .line 831
iload 2 /* logicalStart */
iload 11 /* length */
iadd
iconst_1
isub
istore 9 /* logicalEnd */
start local 9 // int logicalEnd
78: .line 832
iconst_0
istore 13 /* j */
start local 13 // int j
79: goto 87
80: .line 833
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 834
aload 0 /* bidiBase */
getfield sun.text.bidi.BidiBase.text:[C
iload 15 /* m */
caload
istore 16 /* uchar */
start local 16 // char uchar
84: .line 835
iload 16 /* uchar */
invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
ifne 86
85: .line 836
aload 6 /* indexMap */
iload 14 /* k */
iinc 14 /* k */ 1
iload 15 /* m */
iastore
86: .line 832
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 813
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 841
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 842
aload 6 /* indexMap */
areturn
92: .line 844
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 845
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 846
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