public abstract class com.google.common.escape.UnicodeEscaper extends com.google.common.escape.Escaper
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.google.common.escape.UnicodeEscaper
super_class: com.google.common.escape.Escaper
{
private static final int DEST_PAD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.google.common.escape.Escaper.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/escape/UnicodeEscaper;
protected abstract char[] escape(int);
descriptor: (I)[C
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
cp
public java.lang.String escape(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: aload 0
aload 1
iconst_0
iload 2
invokevirtual com.google.common.escape.UnicodeEscaper.nextEscapeIndex:(Ljava/lang/CharSequence;II)I
istore 3
start local 3 3: iload 3
iload 2
if_icmpne 4
aload 1
goto 5
StackMap locals: int int
StackMap stack:
4: aload 0
aload 1
iload 3
invokevirtual com.google.common.escape.UnicodeEscaper.escapeSlow:(Ljava/lang/String;I)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
5: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/escape/UnicodeEscaper;
0 6 1 string Ljava/lang/String;
2 6 2 end I
3 6 3 index I
MethodParameters:
Name Flags
string
protected int nextEscapeIndex(java.lang.CharSequence, int, int);
descriptor: (Ljava/lang/CharSequence;II)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
istore 4
start local 4 1: goto 8
2: StackMap locals: int
StackMap stack:
aload 1
iload 4
iload 3
invokestatic com.google.common.escape.UnicodeEscaper.codePointAt:(Ljava/lang/CharSequence;II)I
istore 5
start local 5 3: iload 5
iflt 9
aload 0
iload 5
invokevirtual com.google.common.escape.UnicodeEscaper.escape:(I)[C
ifnull 5
4: goto 9
5: StackMap locals: int
StackMap stack:
iload 4
iload 5
invokestatic java.lang.Character.isSupplementaryCodePoint:(I)Z
ifeq 6
iconst_2
goto 7
StackMap locals:
StackMap stack: int
6: iconst_1
StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.CharSequence int int int int
StackMap stack: int int
7: iadd
istore 4
end local 5 8: StackMap locals:
StackMap stack:
iload 4
iload 3
if_icmplt 2
9: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/common/escape/UnicodeEscaper;
0 10 1 csq Ljava/lang/CharSequence;
0 10 2 start I
0 10 3 end I
1 10 4 index I
3 8 5 cp I
MethodParameters:
Name Flags
csq
start
end
protected final java.lang.String escapeSlow(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 1: invokestatic com.google.common.escape.Platform.charBufferFromThreadLocal:()[C
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: goto 26
5: StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int
StackMap stack:
aload 1
iload 2
iload 3
invokestatic com.google.common.escape.UnicodeEscaper.codePointAt:(Ljava/lang/CharSequence;II)I
istore 7
start local 7 6: iload 7
ifge 8
7: new java.lang.IllegalArgumentException
dup
ldc "Trailing high surrogate at end of input"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: int
StackMap stack:
aload 0
iload 7
invokevirtual com.google.common.escape.UnicodeEscaper.escape:(I)[C
astore 8
start local 8 9: iload 2
iload 7
invokestatic java.lang.Character.isSupplementaryCodePoint:(I)Z
ifeq 10
iconst_2
goto 11
StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int int char[]
StackMap stack: int
10: iconst_1
StackMap locals: com.google.common.escape.UnicodeEscaper java.lang.String int int char[] int int int char[]
StackMap stack: int int
11: iadd
istore 9
start local 9 12: aload 8
ifnull 25
13: iload 2
iload 6
isub
istore 10
start local 10 14: iload 5
iload 10
iadd
aload 8
arraylength
iadd
istore 11
start local 11 15: aload 4
arraylength
iload 11
if_icmpge 18
16: iload 11
iload 3
iload 2
isub
iadd
bipush 32
iadd
istore 12
start local 12 17: aload 4
iload 5
iload 12
invokestatic com.google.common.escape.UnicodeEscaper.growBuffer:([CII)[C
astore 4
end local 12 18: StackMap locals: int int int
StackMap stack:
iload 10
ifle 21
19: aload 1
iload 6
iload 2
aload 4
iload 5
invokevirtual java.lang.String.getChars:(II[CI)V
20: iload 5
iload 10
iadd
istore 5
21: StackMap locals:
StackMap stack:
aload 8
arraylength
ifle 24
22: aload 8
iconst_0
aload 4
iload 5
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: iload 5
aload 8
arraylength
iadd
istore 5
24: StackMap locals:
StackMap stack:
iload 9
istore 6
end local 11 end local 10 25: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 9
iload 3
invokevirtual com.google.common.escape.UnicodeEscaper.nextEscapeIndex:(Ljava/lang/CharSequence;II)I
istore 2
end local 9 end local 8 end local 7 26: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmplt 5
27: iload 3
iload 6
isub
istore 7
start local 7 28: iload 7
ifle 34
29: iload 5
iload 7
iadd
istore 8
start local 8 30: aload 4
arraylength
iload 8
if_icmpge 32
31: aload 4
iload 5
iload 8
invokestatic com.google.common.escape.UnicodeEscaper.growBuffer:([CII)[C
astore 4
32: StackMap locals: int int
StackMap stack:
aload 1
iload 6
iload 3
aload 4
iload 5
invokevirtual java.lang.String.getChars:(II[CI)V
33: iload 8
istore 5
end local 8 34: StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 4
iconst_0
iload 5
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/google/common/escape/UnicodeEscaper;
0 35 1 s Ljava/lang/String;
0 35 2 index I
1 35 3 end I
2 35 4 dest [C
3 35 5 destIndex I
4 35 6 unescapedChunkStart I
6 26 7 cp I
9 26 8 escaped [C
12 26 9 nextIndex I
14 25 10 charsSkipped I
15 25 11 sizeNeeded I
17 18 12 destLength I
28 35 7 charsSkipped I
30 34 8 endIndex I
MethodParameters:
Name Flags
s
index
protected static int codePointAt(java.lang.CharSequence, int, int);
descriptor: (Ljava/lang/CharSequence;II)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: iload 1
iload 2
if_icmpge 35
2: aload 0
iload 1
iinc 1 1
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 3
start local 3 3: iload 3
ldc 55296
if_icmplt 4
iload 3
ldc 57343
if_icmple 5
4: StackMap locals: int
StackMap stack:
iload 3
ireturn
5: StackMap locals:
StackMap stack:
iload 3
ldc 56319
if_icmpgt 23
6: iload 1
iload 2
if_icmpne 8
7: iload 3
ineg
ireturn
8: StackMap locals:
StackMap stack:
aload 0
iload 1
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 4
start local 4 9: iload 4
invokestatic java.lang.Character.isLowSurrogate:(C)Z
ifeq 11
10: iload 3
iload 4
invokestatic java.lang.Character.toCodePoint:(CC)I
ireturn
11: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
12: new java.lang.StringBuilder
dup
ldc "Expected low surrogate but got char '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: iload 4
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
14: ldc "' with value "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
16: ldc " at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
18: ldc " in '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
20: ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 23: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
24: new java.lang.StringBuilder
dup
ldc "Unexpected low surrogate character '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: iload 3
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
26: ldc "' with value "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
28: ldc " at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: iload 1
iconst_1
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
30: ldc " in '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
32: ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 3 35: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "Index exceeds specified range"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 seq Ljava/lang/CharSequence;
0 36 1 index I
0 36 2 end I
3 35 3 c1 C
9 23 4 c2 C
MethodParameters:
Name Flags
seq
index
end
private static char[] growBuffer(char[], int, int);
descriptor: ([CII)[C
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifge 2
1: new java.lang.AssertionError
dup
ldc "Cannot increase internal buffer any further"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
newarray 5
astore 3
start local 3 3: iload 1
ifle 5
4: aload 0
iconst_0
aload 3
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: StackMap locals: char[]
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 dest [C
0 6 1 index I
0 6 2 size I
3 6 3 copy [C
MethodParameters:
Name Flags
dest
index
size
}
SourceFile: "UnicodeEscaper.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtCompatible()