class sun.nio.cs.UTF_8$Encoder extends java.nio.charset.CharsetEncoder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.cs.UTF_8$Encoder
super_class: java.nio.charset.CharsetEncoder
{
private sun.nio.cs.Surrogate$Parser sgp;
descriptor: Lsun/nio/cs/Surrogate$Parser;
flags: (0x0002) ACC_PRIVATE
private void <init>(java.nio.charset.Charset);
descriptor: (Ljava/nio/charset/Charset;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc 1.1
ldc 4.0
invokespecial java.nio.charset.CharsetEncoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/cs/UTF_8$Encoder;
0 2 1 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
cs
public boolean canEncode(char);
descriptor: (C)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic sun.nio.cs.Surrogate.is:(I)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/UTF_8$Encoder;
0 3 1 c C
MethodParameters:
Name Flags
c
public boolean isLegalReplacement(byte[]);
descriptor: ([B)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
arraylength
iconst_1
if_icmpne 1
aload 1
iconst_0
baload
ifge 3
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial java.nio.charset.CharsetEncoder.isLegalReplacement:([B)Z
ifne 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/cs/UTF_8$Encoder;
0 4 1 repl [B
MethodParameters:
Name Flags
repl
private static java.nio.charset.CoderResult overflow(java.nio.CharBuffer, int, java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
iload 3
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
1: getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 src Ljava/nio/CharBuffer;
0 2 1 sp I
0 2 2 dst Ljava/nio/ByteBuffer;
0 2 3 dp I
MethodParameters:
Name Flags
src
sp
dst
dp
private static java.nio.charset.CoderResult overflow(java.nio.CharBuffer, int);
descriptor: (Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
1: getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 src Ljava/nio/CharBuffer;
0 2 1 mark I
MethodParameters:
Name Flags
src
mark
private java.nio.charset.CoderResult encodeArrayLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.nio.CharBuffer.array:()[C
astore 3
start local 3 1: aload 1
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 1
invokevirtual java.nio.CharBuffer.position:()I
iadd
istore 4
start local 4 2: aload 1
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 1
invokevirtual java.nio.CharBuffer.limit:()I
iadd
istore 5
start local 5 3: aload 2
invokevirtual java.nio.ByteBuffer.array:()[B
astore 6
start local 6 4: aload 2
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
iadd
istore 7
start local 7 5: aload 2
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
iadd
istore 8
start local 8 6: iload 7
iload 5
iload 4
isub
iload 8
iload 7
isub
invokestatic java.lang.Math.min:(II)I
iadd
istore 9
start local 9 7: goto 9
8: StackMap locals: sun.nio.cs.UTF_8$Encoder java.nio.CharBuffer java.nio.ByteBuffer char[] int int byte[] int int int
StackMap stack:
aload 6
iload 7
iinc 7 1
aload 3
iload 4
iinc 4 1
caload
i2b
bastore
9: StackMap locals:
StackMap stack:
iload 7
iload 9
if_icmpge 44
aload 3
iload 4
caload
sipush 128
if_icmplt 8
10: goto 44
11: StackMap locals:
StackMap stack:
aload 3
iload 4
caload
istore 10
start local 10 12: iload 10
sipush 128
if_icmpge 17
13: iload 7
iload 8
if_icmplt 15
14: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
15: StackMap locals: int
StackMap stack:
aload 6
iload 7
iinc 7 1
iload 10
i2b
bastore
16: goto 43
StackMap locals:
StackMap stack:
17: iload 10
sipush 2048
if_icmpge 23
18: iload 8
iload 7
isub
iconst_2
if_icmpge 20
19: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
20: StackMap locals:
StackMap stack:
aload 6
iload 7
iinc 7 1
sipush 192
iload 10
bipush 6
ishr
ior
i2b
bastore
21: aload 6
iload 7
iinc 7 1
sipush 128
iload 10
bipush 63
iand
ior
i2b
bastore
22: goto 43
StackMap locals:
StackMap stack:
23: iload 10
invokestatic sun.nio.cs.Surrogate.is:(I)Z
ifeq 38
24: aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
ifnonnull 26
25: aload 0
new sun.nio.cs.Surrogate$Parser
dup
invokespecial sun.nio.cs.Surrogate$Parser.<init>:()V
putfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
iload 10
i2c
aload 3
iload 4
iload 5
invokevirtual sun.nio.cs.Surrogate$Parser.parse:(C[CII)I
istore 11
start local 11 27: iload 11
ifge 30
28: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
29: aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
invokevirtual sun.nio.cs.Surrogate$Parser.error:()Ljava/nio/charset/CoderResult;
areturn
30: StackMap locals: int
StackMap stack:
iload 8
iload 7
isub
iconst_4
if_icmpge 32
31: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
32: StackMap locals:
StackMap stack:
aload 6
iload 7
iinc 7 1
sipush 240
iload 11
bipush 18
ishr
ior
i2b
bastore
33: aload 6
iload 7
iinc 7 1
sipush 128
iload 11
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
34: aload 6
iload 7
iinc 7 1
sipush 128
iload 11
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
35: aload 6
iload 7
iinc 7 1
sipush 128
iload 11
bipush 63
iand
ior
i2b
bastore
36: iinc 4 1
end local 11 37: goto 43
38: StackMap locals:
StackMap stack:
iload 8
iload 7
isub
iconst_3
if_icmpge 40
39: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
40: StackMap locals:
StackMap stack:
aload 6
iload 7
iinc 7 1
sipush 224
iload 10
bipush 12
ishr
ior
i2b
bastore
41: aload 6
iload 7
iinc 7 1
sipush 128
iload 10
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
42: aload 6
iload 7
iinc 7 1
sipush 128
iload 10
bipush 63
iand
ior
i2b
bastore
43: StackMap locals:
StackMap stack:
iinc 4 1
end local 10 44: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmplt 11
45: aload 1
iload 4
aload 2
iload 7
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
46: getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 9 end local 8 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 47 0 this Lsun/nio/cs/UTF_8$Encoder;
0 47 1 src Ljava/nio/CharBuffer;
0 47 2 dst Ljava/nio/ByteBuffer;
1 47 3 sa [C
2 47 4 sp I
3 47 5 sl I
4 47 6 da [B
5 47 7 dp I
6 47 8 dl I
7 47 9 dlASCII I
12 44 10 c I
27 37 11 uc I
MethodParameters:
Name Flags
src
dst
private java.nio.charset.CoderResult encodeBufferLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.nio.CharBuffer.position:()I
istore 3
start local 3 1: goto 35
2: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.nio.CharBuffer.get:()C
istore 4
start local 4 3: iload 4
sipush 128
if_icmpge 8
4: aload 2
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 6
5: aload 1
iload 3
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
6: StackMap locals: int
StackMap stack:
aload 2
iload 4
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: goto 34
StackMap locals:
StackMap stack:
8: iload 4
sipush 2048
if_icmpge 14
9: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 11
10: aload 1
iload 3
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
11: StackMap locals:
StackMap stack:
aload 2
sipush 192
iload 4
bipush 6
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: aload 2
sipush 128
iload 4
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
13: goto 34
StackMap locals:
StackMap stack:
14: iload 4
invokestatic sun.nio.cs.Surrogate.is:(I)Z
ifeq 29
15: aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
ifnonnull 17
16: aload 0
new sun.nio.cs.Surrogate$Parser
dup
invokespecial sun.nio.cs.Surrogate$Parser.<init>:()V
putfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
iload 4
i2c
aload 1
invokevirtual sun.nio.cs.Surrogate$Parser.parse:(CLjava/nio/CharBuffer;)I
istore 5
start local 5 18: iload 5
ifge 21
19: aload 1
iload 3
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
20: aload 0
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
invokevirtual sun.nio.cs.Surrogate$Parser.error:()Ljava/nio/charset/CoderResult;
areturn
21: StackMap locals: int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_4
if_icmpge 23
22: aload 1
iload 3
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
23: StackMap locals:
StackMap stack:
aload 2
sipush 240
iload 5
bipush 18
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
24: aload 2
sipush 128
iload 5
bipush 12
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
25: aload 2
sipush 128
iload 5
bipush 6
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
26: aload 2
sipush 128
iload 5
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
27: iinc 3 1
end local 5 28: goto 34
29: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_3
if_icmpge 31
30: aload 1
iload 3
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
31: StackMap locals:
StackMap stack:
aload 2
sipush 224
iload 4
bipush 12
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: aload 2
sipush 128
iload 4
bipush 6
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: aload 2
sipush 128
iload 4
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
34: StackMap locals:
StackMap stack:
iinc 3 1
end local 4 35: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.CharBuffer.hasRemaining:()Z
ifne 2
36: aload 1
iload 3
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
37: getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lsun/nio/cs/UTF_8$Encoder;
0 38 1 src Ljava/nio/CharBuffer;
0 38 2 dst Ljava/nio/ByteBuffer;
1 38 3 mark I
3 35 4 c I
18 28 5 uc I
MethodParameters:
Name Flags
src
dst
protected final java.nio.charset.CoderResult encodeLoop(java.nio.CharBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
aload 2
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
1: aload 0
aload 1
aload 2
invokevirtual sun.nio.cs.UTF_8$Encoder.encodeArrayLoop:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual sun.nio.cs.UTF_8$Encoder.encodeBufferLoop:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/UTF_8$Encoder;
0 3 1 src Ljava/nio/CharBuffer;
0 3 2 dst Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
src
dst
}
SourceFile: "UTF_8.java"
NestHost: sun.nio.cs.UTF_8
InnerClasses:
public Parser = sun.nio.cs.Surrogate$Parser of sun.nio.cs.Surrogate
private Encoder = sun.nio.cs.UTF_8$Encoder of sun.nio.cs.UTF_8