public abstract class com.google.common.escape.CharEscaper 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.CharEscaper
super_class: com.google.common.escape.Escaper
{
private static final int DEST_PAD_MULTIPLIER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 // com.google.common.escape.CharEscaper this
0: .line 46
aload 0 /* this */
invokespecial com.google.common.escape.Escaper.<init>:()V
return
end local 0 // com.google.common.escape.CharEscaper this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/escape/CharEscaper;
public java.lang.String escape(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 // com.google.common.escape.CharEscaper this
start local 1 // java.lang.String string
0: .line 57
aload 1 /* string */
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: .line 59
aload 1 /* string */
invokevirtual java.lang.String.length:()I
istore 2 /* length */
start local 2 // int length
2: .line 60
iconst_0
istore 3 /* index */
start local 3 // int index
3: goto 7
4: .line 61
StackMap locals: int int
StackMap stack:
aload 0 /* this */
aload 1 /* string */
iload 3 /* index */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual com.google.common.escape.CharEscaper.escape:(C)[C
ifnull 6
5: .line 62
aload 0 /* this */
aload 1 /* string */
iload 3 /* index */
invokevirtual com.google.common.escape.CharEscaper.escapeSlow:(Ljava/lang/String;I)Ljava/lang/String;
areturn
6: .line 60
StackMap locals:
StackMap stack:
iinc 3 /* index */ 1
StackMap locals:
StackMap stack:
7: iload 3 /* index */
iload 2 /* length */
if_icmplt 4
end local 3 // int index
8: .line 65
aload 1 /* string */
areturn
end local 2 // int length
end local 1 // java.lang.String string
end local 0 // com.google.common.escape.CharEscaper this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/escape/CharEscaper;
0 9 1 string Ljava/lang/String;
2 9 2 length I
3 8 3 index I
MethodParameters:
Name Flags
string
protected abstract char[] escape(char);
descriptor: (C)[C
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
c
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=12, args_size=3
start local 0 // com.google.common.escape.CharEscaper this
start local 1 // java.lang.String s
start local 2 // int index
0: .line 97
aload 1 /* s */
invokevirtual java.lang.String.length:()I
istore 3 /* slen */
start local 3 // int slen
1: .line 100
invokestatic com.google.common.escape.Platform.charBufferFromThreadLocal:()[C
astore 4 /* dest */
start local 4 // char[] dest
2: .line 101
aload 4 /* dest */
arraylength
istore 5 /* destSize */
start local 5 // int destSize
3: .line 102
iconst_0
istore 6 /* destIndex */
start local 6 // int destIndex
4: .line 103
iconst_0
istore 7 /* lastEscape */
start local 7 // int lastEscape
5: .line 107
goto 23
6: .line 110
StackMap locals: com.google.common.escape.CharEscaper java.lang.String int int char[] int int int
StackMap stack:
aload 0 /* this */
aload 1 /* s */
iload 2 /* index */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual com.google.common.escape.CharEscaper.escape:(C)[C
astore 8 /* r */
start local 8 // char[] r
7: .line 113
aload 8 /* r */
ifnonnull 9
8: .line 114
goto 22
9: .line 117
StackMap locals: char[]
StackMap stack:
aload 8 /* r */
arraylength
istore 9 /* rlen */
start local 9 // int rlen
10: .line 118
iload 2 /* index */
iload 7 /* lastEscape */
isub
istore 10 /* charsSkipped */
start local 10 // int charsSkipped
11: .line 123
iload 6 /* destIndex */
iload 10 /* charsSkipped */
iadd
iload 9 /* rlen */
iadd
istore 11 /* sizeNeeded */
start local 11 // int sizeNeeded
12: .line 124
iload 5 /* destSize */
iload 11 /* sizeNeeded */
if_icmpge 15
13: .line 125
iload 11 /* sizeNeeded */
iconst_2
iload 3 /* slen */
iload 2 /* index */
isub
imul
iadd
istore 5 /* destSize */
14: .line 126
aload 4 /* dest */
iload 6 /* destIndex */
iload 5 /* destSize */
invokestatic com.google.common.escape.CharEscaper.growBuffer:([CII)[C
astore 4 /* dest */
15: .line 130
StackMap locals: int int int
StackMap stack:
iload 10 /* charsSkipped */
ifle 18
16: .line 131
aload 1 /* s */
iload 7 /* lastEscape */
iload 2 /* index */
aload 4 /* dest */
iload 6 /* destIndex */
invokevirtual java.lang.String.getChars:(II[CI)V
17: .line 132
iload 6 /* destIndex */
iload 10 /* charsSkipped */
iadd
istore 6 /* destIndex */
18: .line 136
StackMap locals:
StackMap stack:
iload 9 /* rlen */
ifle 21
19: .line 137
aload 8 /* r */
iconst_0
aload 4 /* dest */
iload 6 /* destIndex */
iload 9 /* rlen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
20: .line 138
iload 6 /* destIndex */
iload 9 /* rlen */
iadd
istore 6 /* destIndex */
21: .line 140
StackMap locals:
StackMap stack:
iload 2 /* index */
iconst_1
iadd
istore 7 /* lastEscape */
end local 11 // int sizeNeeded
end local 10 // int charsSkipped
end local 9 // int rlen
end local 8 // char[] r
22: .line 107
StackMap locals: com.google.common.escape.CharEscaper java.lang.String int int char[] int int int
StackMap stack:
iinc 2 /* index */ 1
StackMap locals:
StackMap stack:
23: iload 2 /* index */
iload 3 /* slen */
if_icmplt 6
24: .line 144
iload 3 /* slen */
iload 7 /* lastEscape */
isub
istore 8 /* charsLeft */
start local 8 // int charsLeft
25: .line 145
iload 8 /* charsLeft */
ifle 31
26: .line 146
iload 6 /* destIndex */
iload 8 /* charsLeft */
iadd
istore 9 /* sizeNeeded */
start local 9 // int sizeNeeded
27: .line 147
iload 5 /* destSize */
iload 9 /* sizeNeeded */
if_icmpge 29
28: .line 150
aload 4 /* dest */
iload 6 /* destIndex */
iload 9 /* sizeNeeded */
invokestatic com.google.common.escape.CharEscaper.growBuffer:([CII)[C
astore 4 /* dest */
29: .line 152
StackMap locals: int int
StackMap stack:
aload 1 /* s */
iload 7 /* lastEscape */
iload 3 /* slen */
aload 4 /* dest */
iload 6 /* destIndex */
invokevirtual java.lang.String.getChars:(II[CI)V
30: .line 153
iload 9 /* sizeNeeded */
istore 6 /* destIndex */
end local 9 // int sizeNeeded
31: .line 155
StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 4 /* dest */
iconst_0
iload 6 /* destIndex */
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 8 // int charsLeft
end local 7 // int lastEscape
end local 6 // int destIndex
end local 5 // int destSize
end local 4 // char[] dest
end local 3 // int slen
end local 2 // int index
end local 1 // java.lang.String s
end local 0 // com.google.common.escape.CharEscaper this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/google/common/escape/CharEscaper;
0 32 1 s Ljava/lang/String;
0 32 2 index I
1 32 3 slen I
2 32 4 dest [C
3 32 5 destSize I
4 32 6 destIndex I
5 32 7 lastEscape I
7 22 8 r [C
10 22 9 rlen I
11 22 10 charsSkipped I
12 22 11 sizeNeeded I
25 32 8 charsLeft I
27 31 9 sizeNeeded I
MethodParameters:
Name Flags
s
index
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 // char[] dest
start local 1 // int index
start local 2 // int size
0: .line 163
iload 2 /* size */
ifge 2
1: .line 164
new java.lang.AssertionError
dup
ldc "Cannot increase internal buffer any further"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: .line 166
StackMap locals:
StackMap stack:
iload 2 /* size */
newarray 5
astore 3 /* copy */
start local 3 // char[] copy
3: .line 167
iload 1 /* index */
ifle 5
4: .line 168
aload 0 /* dest */
iconst_0
aload 3 /* copy */
iconst_0
iload 1 /* index */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 170
StackMap locals: char[]
StackMap stack:
aload 3 /* copy */
areturn
end local 3 // char[] copy
end local 2 // int size
end local 1 // int index
end local 0 // char[] dest
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: "CharEscaper.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtCompatible()