final class sun.nio.cs.UTF_8$Encoder extends java.nio.charset.CharsetEncoder implements sun.nio.cs.ArrayEncoder
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, 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 byte repl;
descriptor: B
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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // java.nio.charset.Charset cs
0: .line 558
aload 0 /* this */
aload 1 /* cs */
ldc 1.1
ldc 3.0
invokespecial java.nio.charset.CharsetEncoder.<init>:(Ljava/nio/charset/Charset;FF)V
1: .line 696
aload 0 /* this */
bipush 63
putfield sun.nio.cs.UTF_8$Encoder.repl:B
2: .line 559
return
end local 1 // java.nio.charset.Charset cs
end local 0 // sun.nio.cs.UTF_8$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/cs/UTF_8$Encoder;
0 3 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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // char c
0: .line 562
iload 1 /* c */
invokestatic java.lang.Character.isSurrogate:(C)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 // char c
end local 0 // sun.nio.cs.UTF_8$Encoder this
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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // byte[] repl
0: .line 566
aload 1 /* repl */
arraylength
iconst_1
if_icmpne 1
aload 1 /* repl */
iconst_0
baload
ifge 3
1: .line 567
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* repl */
invokespecial java.nio.charset.CharsetEncoder.isLegalReplacement:([B)Z
ifne 3
2: .line 566
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 // byte[] repl
end local 0 // sun.nio.cs.UTF_8$Encoder this
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 // java.nio.CharBuffer src
start local 1 // int sp
start local 2 // java.nio.ByteBuffer dst
start local 3 // int dp
0: .line 572
aload 0 /* src */
iload 1 /* sp */
aload 2 /* dst */
iload 3 /* dp */
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
1: .line 573
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 3 // int dp
end local 2 // java.nio.ByteBuffer dst
end local 1 // int sp
end local 0 // java.nio.CharBuffer src
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 // java.nio.CharBuffer src
start local 1 // int mark
0: .line 577
aload 0 /* src */
iload 1 /* mark */
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
1: .line 578
getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 1 // int mark
end local 0 // java.nio.CharBuffer src
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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // java.nio.CharBuffer src
start local 2 // java.nio.ByteBuffer dst
0: .line 585
aload 1 /* src */
invokevirtual java.nio.CharBuffer.array:()[C
astore 3 /* sa */
start local 3 // char[] sa
1: .line 586
aload 1 /* src */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 1 /* src */
invokevirtual java.nio.CharBuffer.position:()I
iadd
istore 4 /* sp */
start local 4 // int sp
2: .line 587
aload 1 /* src */
invokevirtual java.nio.CharBuffer.arrayOffset:()I
aload 1 /* src */
invokevirtual java.nio.CharBuffer.limit:()I
iadd
istore 5 /* sl */
start local 5 // int sl
3: .line 589
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.array:()[B
astore 6 /* da */
start local 6 // byte[] da
4: .line 590
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.position:()I
iadd
istore 7 /* dp */
start local 7 // int dp
5: .line 591
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.limit:()I
iadd
istore 8 /* dl */
start local 8 // int dl
6: .line 592
iload 7 /* dp */
iload 5 /* sl */
iload 4 /* sp */
isub
iload 8 /* dl */
iload 7 /* dp */
isub
invokestatic java.lang.Math.min:(II)I
iadd
istore 9 /* dlASCII */
start local 9 // int dlASCII
7: .line 595
goto 9
8: .line 596
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 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
aload 3 /* sa */
iload 4 /* sp */
iinc 4 /* sp */ 1
caload
i2b
bastore
9: .line 595
StackMap locals:
StackMap stack:
iload 7 /* dp */
iload 9 /* dlASCII */
if_icmpge 44
aload 3 /* sa */
iload 4 /* sp */
caload
sipush 128
if_icmplt 8
10: .line 597
goto 44
11: .line 598
StackMap locals:
StackMap stack:
aload 3 /* sa */
iload 4 /* sp */
caload
istore 10 /* c */
start local 10 // char c
12: .line 599
iload 10 /* c */
sipush 128
if_icmpge 17
13: .line 601
iload 7 /* dp */
iload 8 /* dl */
if_icmplt 15
14: .line 602
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
15: .line 603
StackMap locals: int
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
iload 10 /* c */
i2b
bastore
16: .line 604
goto 43
StackMap locals:
StackMap stack:
17: iload 10 /* c */
sipush 2048
if_icmpge 23
18: .line 606
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_2
if_icmpge 20
19: .line 607
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
20: .line 608
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 192
iload 10 /* c */
bipush 6
ishr
ior
i2b
bastore
21: .line 609
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 10 /* c */
bipush 63
iand
ior
i2b
bastore
22: .line 610
goto 43
StackMap locals:
StackMap stack:
23: iload 10 /* c */
invokestatic java.lang.Character.isSurrogate:(C)Z
ifeq 38
24: .line 612
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
ifnonnull 26
25: .line 613
aload 0 /* this */
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: .line 614
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
iload 10 /* c */
aload 3 /* sa */
iload 4 /* sp */
iload 5 /* sl */
invokevirtual sun.nio.cs.Surrogate$Parser.parse:(C[CII)I
istore 11 /* uc */
start local 11 // int uc
27: .line 615
iload 11 /* uc */
ifge 30
28: .line 616
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
29: .line 617
aload 0 /* this */
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: .line 619
StackMap locals: int
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_4
if_icmpge 32
31: .line 620
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
32: .line 621
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 240
iload 11 /* uc */
bipush 18
ishr
ior
i2b
bastore
33: .line 622
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 11 /* uc */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
34: .line 623
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 11 /* uc */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
35: .line 624
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 11 /* uc */
bipush 63
iand
ior
i2b
bastore
36: .line 625
iinc 4 /* sp */ 1
end local 11 // int uc
37: .line 626
goto 43
38: .line 628
StackMap locals:
StackMap stack:
iload 8 /* dl */
iload 7 /* dp */
isub
iconst_3
if_icmpge 40
39: .line 629
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;ILjava/nio/ByteBuffer;I)Ljava/nio/charset/CoderResult;
areturn
40: .line 630
StackMap locals:
StackMap stack:
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 224
iload 10 /* c */
bipush 12
ishr
ior
i2b
bastore
41: .line 631
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 10 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
42: .line 632
aload 6 /* da */
iload 7 /* dp */
iinc 7 /* dp */ 1
sipush 128
iload 10 /* c */
bipush 63
iand
ior
i2b
bastore
43: .line 634
StackMap locals:
StackMap stack:
iinc 4 /* sp */ 1
end local 10 // char c
44: .line 597
StackMap locals:
StackMap stack:
iload 4 /* sp */
iload 5 /* sl */
if_icmplt 11
45: .line 636
aload 1 /* src */
iload 4 /* sp */
aload 2 /* dst */
iload 7 /* dp */
invokestatic sun.nio.cs.UTF_8.updatePositions:(Ljava/nio/Buffer;ILjava/nio/Buffer;I)V
46: .line 637
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 9 // int dlASCII
end local 8 // int dl
end local 7 // int dp
end local 6 // byte[] da
end local 5 // int sl
end local 4 // int sp
end local 3 // char[] sa
end local 2 // java.nio.ByteBuffer dst
end local 1 // java.nio.CharBuffer src
end local 0 // sun.nio.cs.UTF_8$Encoder this
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 C
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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // java.nio.CharBuffer src
start local 2 // java.nio.ByteBuffer dst
0: .line 643
aload 1 /* src */
invokevirtual java.nio.CharBuffer.position:()I
istore 3 /* mark */
start local 3 // int mark
1: .line 644
goto 35
2: .line 645
StackMap locals: int
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.CharBuffer.get:()C
istore 4 /* c */
start local 4 // char c
3: .line 646
iload 4 /* c */
sipush 128
if_icmpge 8
4: .line 648
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 6
5: .line 649
aload 1 /* src */
iload 3 /* mark */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
6: .line 650
StackMap locals: int
StackMap stack:
aload 2 /* dst */
iload 4 /* c */
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: .line 651
goto 34
StackMap locals:
StackMap stack:
8: iload 4 /* c */
sipush 2048
if_icmpge 14
9: .line 653
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpge 11
10: .line 654
aload 1 /* src */
iload 3 /* mark */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
11: .line 655
StackMap locals:
StackMap stack:
aload 2 /* dst */
sipush 192
iload 4 /* c */
bipush 6
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: .line 656
aload 2 /* dst */
sipush 128
iload 4 /* c */
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
13: .line 657
goto 34
StackMap locals:
StackMap stack:
14: iload 4 /* c */
invokestatic java.lang.Character.isSurrogate:(C)Z
ifeq 29
15: .line 659
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
ifnonnull 17
16: .line 660
aload 0 /* this */
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: .line 661
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
iload 4 /* c */
aload 1 /* src */
invokevirtual sun.nio.cs.Surrogate$Parser.parse:(CLjava/nio/CharBuffer;)I
istore 5 /* uc */
start local 5 // int uc
18: .line 662
iload 5 /* uc */
ifge 21
19: .line 663
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
20: .line 664
aload 0 /* this */
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: .line 666
StackMap locals: int
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_4
if_icmpge 23
22: .line 667
aload 1 /* src */
iload 3 /* mark */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
23: .line 668
StackMap locals:
StackMap stack:
aload 2 /* dst */
sipush 240
iload 5 /* uc */
bipush 18
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
24: .line 669
aload 2 /* dst */
sipush 128
iload 5 /* uc */
bipush 12
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
25: .line 670
aload 2 /* dst */
sipush 128
iload 5 /* uc */
bipush 6
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
26: .line 671
aload 2 /* dst */
sipush 128
iload 5 /* uc */
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
27: .line 672
iinc 3 /* mark */ 1
end local 5 // int uc
28: .line 673
goto 34
29: .line 675
StackMap locals:
StackMap stack:
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_3
if_icmpge 31
30: .line 676
aload 1 /* src */
iload 3 /* mark */
invokestatic sun.nio.cs.UTF_8$Encoder.overflow:(Ljava/nio/CharBuffer;I)Ljava/nio/charset/CoderResult;
areturn
31: .line 677
StackMap locals:
StackMap stack:
aload 2 /* dst */
sipush 224
iload 4 /* c */
bipush 12
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: .line 678
aload 2 /* dst */
sipush 128
iload 4 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
33: .line 679
aload 2 /* dst */
sipush 128
iload 4 /* c */
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
34: .line 681
StackMap locals:
StackMap stack:
iinc 3 /* mark */ 1
end local 4 // char c
35: .line 644
StackMap locals:
StackMap stack:
aload 1 /* src */
invokevirtual java.nio.CharBuffer.hasRemaining:()Z
ifne 2
36: .line 683
aload 1 /* src */
iload 3 /* mark */
invokevirtual java.nio.CharBuffer.position:(I)Ljava/nio/Buffer;
pop
37: .line 684
getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
areturn
end local 3 // int mark
end local 2 // java.nio.ByteBuffer dst
end local 1 // java.nio.CharBuffer src
end local 0 // sun.nio.cs.UTF_8$Encoder this
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 C
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 // sun.nio.cs.UTF_8$Encoder this
start local 1 // java.nio.CharBuffer src
start local 2 // java.nio.ByteBuffer dst
0: .line 690
aload 1 /* src */
invokevirtual java.nio.CharBuffer.hasArray:()Z
ifeq 2
aload 2 /* dst */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
1: .line 691
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.UTF_8$Encoder.encodeArrayLoop:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
areturn
2: .line 693
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* src */
aload 2 /* dst */
invokevirtual sun.nio.cs.UTF_8$Encoder.encodeBufferLoop:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
areturn
end local 2 // java.nio.ByteBuffer dst
end local 1 // java.nio.CharBuffer src
end local 0 // sun.nio.cs.UTF_8$Encoder this
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
protected void implReplaceWith(byte[]);
descriptor: ([B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 // sun.nio.cs.UTF_8$Encoder this
start local 1 // byte[] newReplacement
0: .line 698
aload 0 /* this */
aload 1 /* newReplacement */
iconst_0
baload
putfield sun.nio.cs.UTF_8$Encoder.repl:B
1: .line 699
return
end local 1 // byte[] newReplacement
end local 0 // sun.nio.cs.UTF_8$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/cs/UTF_8$Encoder;
0 2 1 newReplacement [B
MethodParameters:
Name Flags
newReplacement
public int encode(char[], int, int, byte[]);
descriptor: ([CII[B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=5
start local 0 // sun.nio.cs.UTF_8$Encoder this
start local 1 // char[] sa
start local 2 // int sp
start local 3 // int len
start local 4 // byte[] da
0: .line 704
iload 2 /* sp */
iload 3 /* len */
iadd
istore 5 /* sl */
start local 5 // int sl
1: .line 705
iconst_0
istore 6 /* dp */
start local 6 // int dp
2: .line 706
iload 6 /* dp */
iload 3 /* len */
aload 4 /* da */
arraylength
invokestatic java.lang.Math.min:(II)I
iadd
istore 7 /* dlASCII */
start local 7 // int dlASCII
3: .line 709
goto 5
4: .line 710
StackMap locals: int int int
StackMap stack:
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
aload 1 /* sa */
iload 2 /* sp */
iinc 2 /* sp */ 1
caload
i2b
bastore
5: .line 709
StackMap locals:
StackMap stack:
iload 6 /* dp */
iload 7 /* dlASCII */
if_icmpge 33
aload 1 /* sa */
iload 2 /* sp */
caload
sipush 128
if_icmplt 4
6: .line 712
goto 33
7: .line 713
StackMap locals:
StackMap stack:
aload 1 /* sa */
iload 2 /* sp */
iinc 2 /* sp */ 1
caload
istore 8 /* c */
start local 8 // char c
8: .line 714
iload 8 /* c */
sipush 128
if_icmpge 11
9: .line 716
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
iload 8 /* c */
i2b
bastore
10: .line 717
goto 33
StackMap locals: int
StackMap stack:
11: iload 8 /* c */
sipush 2048
if_icmpge 15
12: .line 719
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 192
iload 8 /* c */
bipush 6
ishr
ior
i2b
bastore
13: .line 720
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 8 /* c */
bipush 63
iand
ior
i2b
bastore
14: .line 721
goto 33
StackMap locals:
StackMap stack:
15: iload 8 /* c */
invokestatic java.lang.Character.isSurrogate:(C)Z
ifeq 30
16: .line 722
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
ifnonnull 18
17: .line 723
aload 0 /* this */
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;
18: .line 724
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.sgp:Lsun/nio/cs/Surrogate$Parser;
iload 8 /* c */
aload 1 /* sa */
iload 2 /* sp */
iconst_1
isub
iload 5 /* sl */
invokevirtual sun.nio.cs.Surrogate$Parser.parse:(C[CII)I
istore 9 /* uc */
start local 9 // int uc
19: .line 725
iload 9 /* uc */
ifge 24
20: .line 726
aload 0 /* this */
invokevirtual sun.nio.cs.UTF_8$Encoder.malformedInputAction:()Ljava/nio/charset/CodingErrorAction;
getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
if_acmpeq 22
21: .line 727
iconst_m1
ireturn
22: .line 728
StackMap locals: int
StackMap stack:
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
aload 0 /* this */
getfield sun.nio.cs.UTF_8$Encoder.repl:B
bastore
23: .line 729
goto 33
24: .line 730
StackMap locals:
StackMap stack:
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 240
iload 9 /* uc */
bipush 18
ishr
ior
i2b
bastore
25: .line 731
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 9 /* uc */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
26: .line 732
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 9 /* uc */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
27: .line 733
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 9 /* uc */
bipush 63
iand
ior
i2b
bastore
28: .line 734
iinc 2 /* sp */ 1
end local 9 // int uc
29: .line 736
goto 33
30: .line 738
StackMap locals:
StackMap stack:
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 224
iload 8 /* c */
bipush 12
ishr
ior
i2b
bastore
31: .line 739
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 8 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
32: .line 740
aload 4 /* da */
iload 6 /* dp */
iinc 6 /* dp */ 1
sipush 128
iload 8 /* c */
bipush 63
iand
ior
i2b
bastore
end local 8 // char c
33: .line 712
StackMap locals:
StackMap stack:
iload 2 /* sp */
iload 5 /* sl */
if_icmplt 7
34: .line 743
iload 6 /* dp */
ireturn
end local 7 // int dlASCII
end local 6 // int dp
end local 5 // int sl
end local 4 // byte[] da
end local 3 // int len
end local 2 // int sp
end local 1 // char[] sa
end local 0 // sun.nio.cs.UTF_8$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/nio/cs/UTF_8$Encoder;
0 35 1 sa [C
0 35 2 sp I
0 35 3 len I
0 35 4 da [B
1 35 5 sl I
2 35 6 dp I
3 35 7 dlASCII I
8 33 8 c C
19 29 9 uc I
MethodParameters:
Name Flags
sa
sp
len
da
}
SourceFile: "UTF_8.java"
NestHost: sun.nio.cs.UTF_8
InnerClasses:
public Parser = sun.nio.cs.Surrogate$Parser of sun.nio.cs.Surrogate
private final Encoder = sun.nio.cs.UTF_8$Encoder of sun.nio.cs.UTF_8