class nu.xom.UnicodeUtil$UnicodeString
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: nu.xom.UnicodeUtil$UnicodeString
super_class: java.lang.Object
{
private int[] data;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int size;
descriptor: I
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=2
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
start local 1 // java.lang.String s
0: .line 4836
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 4834
aload 0 /* this */
iconst_0
putfield nu.xom.UnicodeUtil$UnicodeString.size:I
2: .line 4838
aload 1 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* length */
start local 2 // int length
3: .line 4839
aload 0 /* this */
iload 2 /* length */
newarray 10
putfield nu.xom.UnicodeUtil$UnicodeString.data:[I
4: .line 4840
iconst_0
istore 3 /* index */
start local 3 // int index
5: .line 4841
iconst_0
istore 4 /* i */
start local 4 // int i
6: goto 15
7: .line 4842
StackMap locals: nu.xom.UnicodeUtil$UnicodeString java.lang.String int int int
StackMap stack:
aload 1 /* s */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 5 /* c */
start local 5 // char c
8: .line 4843
iload 5 /* c */
istore 6 /* codePoint */
start local 6 // int codePoint
9: .line 4844
iload 5 /* c */
invokestatic nu.xom.UnicodeUtil.isHighSurrogate:(C)Z
ifeq 12
10: .line 4845
iinc 4 /* i */ 1
11: .line 4846
iload 5 /* c */
aload 1 /* s */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
invokestatic nu.xom.UnicodeUtil.combineSurrogatePair:(CC)I
istore 6 /* codePoint */
12: .line 4848
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 3 /* index */
iload 6 /* codePoint */
iastore
13: .line 4849
iinc 3 /* index */ 1
end local 6 // int codePoint
end local 5 // char c
14: .line 4841
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 4 /* i */
iload 2 /* length */
if_icmplt 7
end local 4 // int i
16: .line 4851
aload 0 /* this */
iload 3 /* index */
putfield nu.xom.UnicodeUtil$UnicodeString.size:I
17: .line 4853
return
end local 3 // int index
end local 2 // int length
end local 1 // java.lang.String s
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lnu/xom/UnicodeUtil$UnicodeString;
0 18 1 s Ljava/lang/String;
3 18 2 length I
5 18 3 index I
6 16 4 i I
8 14 5 c C
9 14 6 codePoint I
MethodParameters:
Name Flags
s
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
start local 1 // int length
0: .line 4856
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 4834
aload 0 /* this */
iconst_0
putfield nu.xom.UnicodeUtil$UnicodeString.size:I
2: .line 4857
aload 0 /* this */
iconst_0
putfield nu.xom.UnicodeUtil$UnicodeString.size:I
3: .line 4858
aload 0 /* this */
iload 1 /* length */
newarray 10
putfield nu.xom.UnicodeUtil$UnicodeString.data:[I
4: .line 4859
return
end local 1 // int length
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lnu/xom/UnicodeUtil$UnicodeString;
0 5 1 length I
MethodParameters:
Name Flags
length
nu.xom.UnicodeUtil$UnicodeString decompose();
descriptor: ()Lnu/xom/UnicodeUtil$UnicodeString;
flags: (0x0000)
Code:
stack=3, locals=7, args_size=1
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
0: .line 4864
new nu.xom.UnicodeUtil$UnicodeString
dup
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
invokespecial nu.xom.UnicodeUtil$UnicodeString.<init>:(I)V
astore 1 /* result */
start local 1 // nu.xom.UnicodeUtil$UnicodeString result
1: .line 4865
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 7
3: .line 4866
StackMap locals: nu.xom.UnicodeUtil$UnicodeString int
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iaload
istore 3 /* c */
start local 3 // int c
4: .line 4867
iload 3 /* c */
invokestatic nu.xom.UnicodeUtil.decompose:(I)Ljava/lang/String;
astore 4 /* d */
start local 4 // java.lang.String d
5: .line 4868
aload 1 /* result */
aload 4 /* d */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(Ljava/lang/String;)V
end local 4 // java.lang.String d
end local 3 // int c
6: .line 4865
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 2 /* i */
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
if_icmplt 3
end local 2 // int i
8: .line 4873
iconst_0
istore 2 /* i */
start local 2 // int i
9: goto 21
10: .line 4874
StackMap locals:
StackMap stack:
aload 1 /* result */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iaload
istore 3 /* first */
start local 3 // int first
11: .line 4875
aload 1 /* result */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iconst_1
iadd
iaload
istore 4 /* second */
start local 4 // int second
12: .line 4876
iload 4 /* second */
invokestatic nu.xom.UnicodeUtil.getCombiningClass:(I)I
istore 5 /* secondClass */
start local 5 // int secondClass
13: .line 4877
iload 5 /* secondClass */
ifne 14
goto 20
14: .line 4878
StackMap locals: int int int
StackMap stack:
iload 3 /* first */
invokestatic nu.xom.UnicodeUtil.getCombiningClass:(I)I
istore 6 /* firstClass */
start local 6 // int firstClass
15: .line 4879
iload 6 /* firstClass */
iload 5 /* secondClass */
if_icmple 20
16: .line 4880
aload 1 /* result */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iload 4 /* second */
iastore
17: .line 4881
aload 1 /* result */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iconst_1
iadd
iload 3 /* first */
iastore
18: .line 4882
iinc 2 /* i */ -2
19: .line 4883
iload 2 /* i */
bipush -2
if_icmpne 20
iconst_m1
istore 2 /* i */
end local 6 // int firstClass
end local 5 // int secondClass
end local 4 // int second
end local 3 // int first
20: .line 4873
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
21: iload 2 /* i */
aload 1 /* result */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
iconst_1
isub
if_icmplt 10
end local 2 // int i
22: .line 4887
aload 1 /* result */
areturn
end local 1 // nu.xom.UnicodeUtil$UnicodeString result
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lnu/xom/UnicodeUtil$UnicodeString;
1 23 1 result Lnu/xom/UnicodeUtil$UnicodeString;
2 8 2 i I
4 6 3 c I
5 6 4 d Ljava/lang/String;
9 22 2 i I
11 20 3 first I
12 20 4 second I
13 20 5 secondClass I
15 20 6 firstClass I
nu.xom.UnicodeUtil$UnicodeString compose();
descriptor: ()Lnu/xom/UnicodeUtil$UnicodeString;
flags: (0x0000)
Code:
stack=3, locals=8, args_size=1
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
0: .line 4894
getstatic nu.xom.UnicodeUtil.compositions:Ljava/util/Map;
ifnonnull 1
invokestatic nu.xom.UnicodeUtil.loadCompositions:()V
1: .line 4896
StackMap locals:
StackMap stack:
new nu.xom.UnicodeUtil$UnicodeString
dup
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
invokespecial nu.xom.UnicodeUtil$UnicodeString.<init>:(I)V
astore 1 /* composed */
start local 1 // nu.xom.UnicodeUtil$UnicodeString composed
2: .line 4898
iconst_m1
istore 2 /* lastStarter */
start local 2 // int lastStarter
3: .line 4899
iconst_m1
istore 3 /* lastStarterIndex */
start local 3 // int lastStarterIndex
4: .line 4900
iconst_m1
istore 4 /* composedLastStarterIndex */
start local 4 // int composedLastStarterIndex
5: .line 4902
iconst_0
istore 5 /* i */
start local 5 // int i
6: goto 28
7: .line 4903
StackMap locals: nu.xom.UnicodeUtil$UnicodeString nu.xom.UnicodeUtil$UnicodeString int int int int
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 5 /* i */
iaload
istore 6 /* c */
start local 6 // int c
8: .line 4904
iload 2 /* lastStarter */
iconst_m1
if_icmpeq 9
aload 0 /* this */
iload 3 /* lastStarterIndex */
iload 5 /* i */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.isBlocked:(II)Z
ifeq 15
9: .line 4905
StackMap locals: int
StackMap stack:
aload 1 /* composed */
iload 6 /* c */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(I)V
10: .line 4906
iload 6 /* c */
invokestatic nu.xom.UnicodeUtil.isStarter:(I)Z
ifeq 27
11: .line 4907
iload 6 /* c */
istore 2 /* lastStarter */
12: .line 4908
iload 5 /* i */
istore 3 /* lastStarterIndex */
13: .line 4909
aload 1 /* composed */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
iconst_1
isub
istore 4 /* composedLastStarterIndex */
14: .line 4911
goto 27
15: .line 4913
StackMap locals:
StackMap stack:
iload 2 /* lastStarter */
iload 6 /* c */
invokestatic nu.xom.UnicodeUtil.composeCharacter:(II)I
istore 7 /* composedChar */
start local 7 // int composedChar
16: .line 4914
iload 7 /* composedChar */
iconst_m1
if_icmpne 23
17: .line 4915
aload 1 /* composed */
iload 6 /* c */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(I)V
18: .line 4916
iload 6 /* c */
invokestatic nu.xom.UnicodeUtil.isStarter:(I)Z
ifeq 27
19: .line 4917
iload 6 /* c */
istore 2 /* lastStarter */
20: .line 4918
iload 5 /* i */
istore 3 /* lastStarterIndex */
21: .line 4919
aload 1 /* composed */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
iconst_1
isub
istore 4 /* composedLastStarterIndex */
22: .line 4921
goto 27
23: .line 4923
StackMap locals: int
StackMap stack:
iload 7 /* composedChar */
istore 2 /* lastStarter */
24: .line 4925
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 3 /* lastStarterIndex */
iload 7 /* composedChar */
iastore
25: .line 4926
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 5 /* i */
iconst_0
iastore
26: .line 4927
aload 1 /* composed */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 4 /* composedLastStarterIndex */
iload 7 /* composedChar */
iastore
end local 7 // int composedChar
end local 6 // int c
27: .line 4902
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
28: iload 5 /* i */
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
if_icmplt 7
end local 5 // int i
29: .line 4932
aload 1 /* composed */
areturn
end local 4 // int composedLastStarterIndex
end local 3 // int lastStarterIndex
end local 2 // int lastStarter
end local 1 // nu.xom.UnicodeUtil$UnicodeString composed
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lnu/xom/UnicodeUtil$UnicodeString;
2 30 1 composed Lnu/xom/UnicodeUtil$UnicodeString;
3 30 2 lastStarter I
4 30 3 lastStarterIndex I
5 30 4 composedLastStarterIndex I
6 29 5 i I
8 27 6 c I
16 27 7 composedChar I
void append(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
start local 1 // java.lang.String s
0: .line 4939
iconst_0
istore 2 /* i */
start local 2 // int i
1: goto 9
2: .line 4940
StackMap locals: int
StackMap stack:
aload 1 /* s */
iload 2 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 3 /* c */
start local 3 // char c
3: .line 4941
iload 3 /* c */
invokestatic nu.xom.UnicodeUtil.isHighSurrogate:(C)Z
ifeq 7
4: .line 4942
aload 0 /* this */
iload 3 /* c */
aload 1 /* s */
iload 2 /* i */
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
invokestatic nu.xom.UnicodeUtil.combineSurrogatePair:(CC)I
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(I)V
5: .line 4943
iinc 2 /* i */ 1
6: .line 4944
goto 8
7: .line 4946
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 3 /* c */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(I)V
end local 3 // char c
8: .line 4939
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 2 /* i */
aload 1 /* s */
invokevirtual java.lang.String.length:()I
if_icmplt 2
end local 2 // int i
10: .line 4950
return
end local 1 // java.lang.String s
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lnu/xom/UnicodeUtil$UnicodeString;
0 11 1 s Ljava/lang/String;
1 10 2 i I
3 8 3 c C
MethodParameters:
Name Flags
s
void append(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
start local 1 // int c
0: .line 4955
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
arraylength
iconst_1
isub
if_icmpge 4
1: .line 4956
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
iload 1 /* c */
iastore
2: .line 4957
aload 0 /* this */
dup
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
iconst_1
iadd
putfield nu.xom.UnicodeUtil$UnicodeString.size:I
3: .line 4958
goto 8
4: .line 4960
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
arraylength
bipush 10
iadd
newarray 10
astore 2 /* array */
start local 2 // int[] array
5: .line 4961
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iconst_0
aload 2 /* array */
iconst_0
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: .line 4962
aload 0 /* this */
aload 2 /* array */
putfield nu.xom.UnicodeUtil$UnicodeString.data:[I
7: .line 4963
aload 0 /* this */
iload 1 /* c */
invokevirtual nu.xom.UnicodeUtil$UnicodeString.append:(I)V
end local 2 // int[] array
8: .line 4966
StackMap locals:
StackMap stack:
return
end local 1 // int c
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnu/xom/UnicodeUtil$UnicodeString;
0 9 1 c I
5 8 2 array [I
MethodParameters:
Name Flags
c
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
0: .line 4970
new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 1 /* sb */
start local 1 // java.lang.StringBuffer sb
1: .line 4971
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 7
3: .line 4972
StackMap locals: java.lang.StringBuffer int
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* i */
iaload
istore 3 /* c */
start local 3 // int c
4: .line 4973
iload 3 /* c */
ldc 65535
if_icmpgt 5
aload 1 /* sb */
iload 3 /* c */
i2c
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
goto 6
5: .line 4975
StackMap locals: int
StackMap stack:
aload 1 /* sb */
iload 3 /* c */
invokestatic nu.xom.UnicodeUtil.makeSurrogatePair:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
end local 3 // int c
6: .line 4971
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 2 /* i */
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.size:I
if_icmplt 3
end local 2 // int i
8: .line 4978
aload 1 /* sb */
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 1 // java.lang.StringBuffer sb
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnu/xom/UnicodeUtil$UnicodeString;
1 9 1 sb Ljava/lang/StringBuffer;
2 8 2 i I
4 6 3 c I
private boolean isBlocked(int, int);
descriptor: (II)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 // nu.xom.UnicodeUtil$UnicodeString this
start local 1 // int lastStarterIndex
start local 2 // int index
0: .line 4984
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 2 /* index */
iaload
invokestatic nu.xom.UnicodeUtil.getCombiningClass:(I)I
istore 3 /* combiningClass */
start local 3 // int combiningClass
1: .line 4985
iload 1 /* lastStarterIndex */
iconst_1
iadd
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 4986
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 4 /* i */
iaload
ifeq 5
iload 3 /* combiningClass */
aload 0 /* this */
getfield nu.xom.UnicodeUtil$UnicodeString.data:[I
iload 4 /* i */
iaload
invokestatic nu.xom.UnicodeUtil.getCombiningClass:(I)I
if_icmpne 5
4: .line 4987
iconst_1
ireturn
5: .line 4985
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 4 /* i */
iload 2 /* index */
if_icmplt 3
end local 4 // int i
7: .line 4990
iconst_0
ireturn
end local 3 // int combiningClass
end local 2 // int index
end local 1 // int lastStarterIndex
end local 0 // nu.xom.UnicodeUtil$UnicodeString this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lnu/xom/UnicodeUtil$UnicodeString;
0 8 1 lastStarterIndex I
0 8 2 index I
1 8 3 combiningClass I
2 7 4 i I
MethodParameters:
Name Flags
lastStarterIndex
index
}
SourceFile: "UnicodeUtil.java"
NestHost: nu.xom.UnicodeUtil
InnerClasses:
private UnicodeString = nu.xom.UnicodeUtil$UnicodeString of nu.xom.UnicodeUtil