public final class com.ctc.wstx.io.UTF8Writer extends java.io.Writer implements com.ctc.wstx.io.CompletelyCloseable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.ctc.wstx.io.UTF8Writer
super_class: java.io.Writer
{
private static final int DEFAULT_BUF_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4000
static final int SURR1_FIRST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 55296
static final int SURR1_LAST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 56319
static final int SURR2_FIRST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 56320
static final int SURR2_LAST;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 57343
final com.ctc.wstx.api.WriterConfig mConfig;
descriptor: Lcom/ctc/wstx/api/WriterConfig;
flags: (0x0010) ACC_FINAL
final boolean mAutoCloseOutput;
descriptor: Z
flags: (0x0010) ACC_FINAL
final java.io.OutputStream mOut;
descriptor: Ljava/io/OutputStream;
flags: (0x0010) ACC_FINAL
byte[] mOutBuffer;
descriptor: [B
flags: (0x0000)
final int mOutBufferLast;
descriptor: I
flags: (0x0010) ACC_FINAL
int mOutPtr;
descriptor: I
flags: (0x0000)
int mSurrogate;
descriptor: I
flags: (0x0000)
public void <init>(com.ctc.wstx.api.WriterConfig, java.io.OutputStream, boolean);
descriptor: (Lcom/ctc/wstx/api/WriterConfig;Ljava/io/OutputStream;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // com.ctc.wstx.api.WriterConfig cfg
start local 2 // java.io.OutputStream out
start local 3 // boolean autoclose
0: .line 45
aload 0 /* this */
invokespecial java.io.Writer.<init>:()V
1: .line 43
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
2: .line 47
aload 0 /* this */
aload 1 /* cfg */
putfield com.ctc.wstx.io.UTF8Writer.mConfig:Lcom/ctc/wstx/api/WriterConfig;
3: .line 48
aload 0 /* this */
iload 3 /* autoclose */
putfield com.ctc.wstx.io.UTF8Writer.mAutoCloseOutput:Z
4: .line 49
aload 0 /* this */
aload 2 /* out */
putfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
5: .line 50
aload 0 /* this */
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mConfig:Lcom/ctc/wstx/api/WriterConfig;
ifnonnull 6
sipush 4000
newarray 8
goto 7
StackMap locals: com.ctc.wstx.io.UTF8Writer com.ctc.wstx.api.WriterConfig java.io.OutputStream int
StackMap stack: com.ctc.wstx.io.UTF8Writer
6: aload 1 /* cfg */
sipush 4000
invokevirtual com.ctc.wstx.api.WriterConfig.allocFullBBuffer:(I)[B
StackMap locals: com.ctc.wstx.io.UTF8Writer com.ctc.wstx.api.WriterConfig java.io.OutputStream int
StackMap stack: com.ctc.wstx.io.UTF8Writer byte[]
7: putfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
8: .line 55
aload 0 /* this */
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
arraylength
iconst_4
isub
putfield com.ctc.wstx.io.UTF8Writer.mOutBufferLast:I
9: .line 56
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
10: .line 57
return
end local 3 // boolean autoclose
end local 2 // java.io.OutputStream out
end local 1 // com.ctc.wstx.api.WriterConfig cfg
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 11 1 cfg Lcom/ctc/wstx/api/WriterConfig;
0 11 2 out Ljava/io/OutputStream;
0 11 3 autoclose Z
MethodParameters:
Name Flags
cfg
out
autoclose
public void closeCompletely();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.ctc.wstx.io.UTF8Writer this
0: .line 67
aload 0 /* this */
iconst_1
invokevirtual com.ctc.wstx.io.UTF8Writer._close:(Z)V
1: .line 68
return
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/ctc/wstx/io/UTF8Writer;
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.ctc.wstx.io.UTF8Writer this
0: .line 93
aload 0 /* this */
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mAutoCloseOutput:Z
invokevirtual com.ctc.wstx.io.UTF8Writer._close:(Z)V
1: .line 94
return
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/ctc/wstx/io/UTF8Writer;
Exceptions:
throws java.io.IOException
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 // com.ctc.wstx.io.UTF8Writer this
0: .line 99
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
ifle 3
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
ifnull 3
1: .line 100
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iconst_0
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
invokevirtual java.io.OutputStream.write:([BII)V
2: .line 101
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
3: .line 103
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
4: .line 104
return
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/ctc/wstx/io/UTF8Writer;
Exceptions:
throws java.io.IOException
public void write(char[]);
descriptor: ([C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // char[] cbuf
0: .line 109
aload 0 /* this */
aload 1 /* cbuf */
iconst_0
aload 1 /* cbuf */
arraylength
invokevirtual com.ctc.wstx.io.UTF8Writer.write:([CII)V
1: .line 110
return
end local 1 // char[] cbuf
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 2 1 cbuf [C
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
public void write(char[], int, int);
descriptor: ([CII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // char[] cbuf
start local 2 // int off
start local 3 // int len
0: .line 115
iload 3 /* len */
iconst_2
if_icmpge 4
1: .line 116
iload 3 /* len */
iconst_1
if_icmpne 3
2: .line 117
aload 0 /* this */
aload 1 /* cbuf */
iload 2 /* off */
caload
invokevirtual com.ctc.wstx.io.UTF8Writer.write:(I)V
3: .line 119
StackMap locals:
StackMap stack:
return
4: .line 123
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
ifle 8
5: .line 124
aload 1 /* cbuf */
iload 2 /* off */
iinc 2 /* off */ 1
caload
istore 4 /* second */
start local 4 // char second
6: .line 125
iinc 3 /* len */ -1
7: .line 126
aload 0 /* this */
aload 0 /* this */
iload 4 /* second */
invokevirtual com.ctc.wstx.io.UTF8Writer._convertSurrogate:(I)I
invokevirtual com.ctc.wstx.io.UTF8Writer.write:(I)V
end local 4 // char second
8: .line 130
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
istore 4 /* outPtr */
start local 4 // int outPtr
9: .line 131
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
astore 5 /* outBuf */
start local 5 // byte[] outBuf
10: .line 132
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBufferLast:I
istore 6 /* outBufLast */
start local 6 // int outBufLast
11: .line 135
iload 3 /* len */
iload 2 /* off */
iadd
istore 3 /* len */
12: .line 138
goto 54
13: .line 142
StackMap locals: int byte[] int
StackMap stack:
iload 4 /* outPtr */
iload 6 /* outBufLast */
if_icmplt 16
14: .line 143
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
aload 5 /* outBuf */
iconst_0
iload 4 /* outPtr */
invokevirtual java.io.OutputStream.write:([BII)V
15: .line 144
iconst_0
istore 4 /* outPtr */
16: .line 147
StackMap locals:
StackMap stack:
aload 1 /* cbuf */
iload 2 /* off */
iinc 2 /* off */ 1
caload
istore 7 /* c */
start local 7 // int c
17: .line 149
iload 7 /* c */
sipush 128
if_icmpge 31
18: .line 150
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
iload 7 /* c */
i2b
bastore
19: .line 152
iload 3 /* len */
iload 2 /* off */
isub
istore 8 /* maxInCount */
start local 8 // int maxInCount
20: .line 153
iload 6 /* outBufLast */
iload 4 /* outPtr */
isub
istore 9 /* maxOutCount */
start local 9 // int maxOutCount
21: .line 155
iload 8 /* maxInCount */
iload 9 /* maxOutCount */
if_icmple 23
22: .line 156
iload 9 /* maxOutCount */
istore 8 /* maxInCount */
23: .line 158
StackMap locals: int int int
StackMap stack:
iload 8 /* maxInCount */
iload 2 /* off */
iadd
istore 8 /* maxInCount */
24: .line 161
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 8 /* maxInCount */
if_icmplt 26
25: .line 162
goto 54
26: .line 164
StackMap locals:
StackMap stack:
aload 1 /* cbuf */
iload 2 /* off */
iinc 2 /* off */ 1
caload
istore 7 /* c */
27: .line 165
iload 7 /* c */
sipush 128
if_icmplt 29
28: .line 166
goto 31
29: .line 168
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
iload 7 /* c */
i2b
bastore
30: .line 160
goto 24
end local 9 // int maxOutCount
end local 8 // int maxInCount
31: .line 173
StackMap locals:
StackMap stack:
iload 7 /* c */
sipush 2048
if_icmpge 35
32: .line 174
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 192
iload 7 /* c */
bipush 6
ishr
ior
i2b
bastore
33: .line 175
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
34: .line 176
goto 54
35: .line 178
StackMap locals:
StackMap stack:
iload 7 /* c */
ldc 55296
if_icmplt 36
iload 7 /* c */
ldc 57343
if_icmple 40
36: .line 179
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 224
iload 7 /* c */
bipush 12
ishr
ior
i2b
bastore
37: .line 180
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
38: .line 181
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
39: .line 182
goto 54
40: .line 185
StackMap locals:
StackMap stack:
iload 7 /* c */
ldc 56319
if_icmple 43
41: .line 186
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
42: .line 187
aload 0 /* this */
iload 7 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
43: .line 189
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* c */
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
44: .line 191
iload 2 /* off */
iload 3 /* len */
if_icmplt 46
45: .line 192
goto 55
46: .line 194
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* cbuf */
iload 2 /* off */
iinc 2 /* off */ 1
caload
invokevirtual com.ctc.wstx.io.UTF8Writer._convertSurrogate:(I)I
istore 7 /* c */
47: .line 195
iload 7 /* c */
ldc 1114111
if_icmple 50
48: .line 196
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
49: .line 197
aload 0 /* this */
iload 7 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
50: .line 199
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 240
iload 7 /* c */
bipush 18
ishr
ior
i2b
bastore
51: .line 200
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
52: .line 201
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
53: .line 202
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
end local 7 // int c
54: .line 138
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 3 /* len */
if_icmplt 13
55: .line 205
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
56: .line 206
return
end local 6 // int outBufLast
end local 5 // byte[] outBuf
end local 4 // int outPtr
end local 3 // int len
end local 2 // int off
end local 1 // char[] cbuf
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 57 1 cbuf [C
0 57 2 off I
0 57 3 len I
6 8 4 second C
9 57 4 outPtr I
10 57 5 outBuf [B
11 57 6 outBufLast I
17 54 7 c I
20 31 8 maxInCount I
21 31 9 maxOutCount I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cbuf
off
len
public void write(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // int c
0: .line 212
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
ifle 3
1: .line 213
aload 0 /* this */
iload 1 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer._convertSurrogate:(I)I
istore 1 /* c */
2: .line 215
goto 8
StackMap locals:
StackMap stack:
3: iload 1 /* c */
ldc 55296
if_icmplt 8
iload 1 /* c */
ldc 57343
if_icmpgt 8
4: .line 217
iload 1 /* c */
ldc 56319
if_icmple 6
5: .line 218
aload 0 /* this */
iload 1 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
6: .line 221
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* c */
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
7: .line 222
return
8: .line 225
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBufferLast:I
if_icmplt 11
9: .line 226
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iconst_0
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
invokevirtual java.io.OutputStream.write:([BII)V
10: .line 227
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
11: .line 230
StackMap locals:
StackMap stack:
iload 1 /* c */
sipush 128
if_icmpge 14
12: .line 231
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
aload 0 /* this */
dup
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
dup_x1
iconst_1
iadd
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
iload 1 /* c */
i2b
bastore
13: .line 232
goto 31
14: .line 233
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
istore 2 /* ptr */
start local 2 // int ptr
15: .line 234
iload 1 /* c */
sipush 2048
if_icmpge 19
16: .line 235
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 192
iload 1 /* c */
bipush 6
ishr
ior
i2b
bastore
17: .line 236
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 63
iand
ior
i2b
bastore
18: .line 237
goto 30
StackMap locals: int
StackMap stack:
19: iload 1 /* c */
ldc 65535
if_icmpgt 24
20: .line 238
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 224
iload 1 /* c */
bipush 12
ishr
ior
i2b
bastore
21: .line 239
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
22: .line 240
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 63
iand
ior
i2b
bastore
23: .line 241
goto 30
24: .line 242
StackMap locals:
StackMap stack:
iload 1 /* c */
ldc 1114111
if_icmple 26
25: .line 243
aload 0 /* this */
iload 1 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
26: .line 245
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 240
iload 1 /* c */
bipush 18
ishr
ior
i2b
bastore
27: .line 246
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
28: .line 247
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
29: .line 248
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
iload 2 /* ptr */
iinc 2 /* ptr */ 1
sipush 128
iload 1 /* c */
bipush 63
iand
ior
i2b
bastore
30: .line 250
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* ptr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
end local 2 // int ptr
31: .line 252
StackMap locals:
StackMap stack:
return
end local 1 // int c
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 32 1 c I
15 31 2 ptr I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
public void write(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // java.lang.String str
0: .line 257
aload 0 /* this */
aload 1 /* str */
iconst_0
aload 1 /* str */
invokevirtual java.lang.String.length:()I
invokevirtual com.ctc.wstx.io.UTF8Writer.write:(Ljava/lang/String;II)V
1: .line 258
return
end local 1 // java.lang.String str
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 2 1 str Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
str
public void write(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // java.lang.String str
start local 2 // int off
start local 3 // int len
0: .line 263
iload 3 /* len */
iconst_2
if_icmpge 4
1: .line 264
iload 3 /* len */
iconst_1
if_icmpne 3
2: .line 265
aload 0 /* this */
aload 1 /* str */
iload 2 /* off */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual com.ctc.wstx.io.UTF8Writer.write:(I)V
3: .line 267
StackMap locals:
StackMap stack:
return
4: .line 271
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
ifle 8
5: .line 272
aload 1 /* str */
iload 2 /* off */
iinc 2 /* off */ 1
invokevirtual java.lang.String.charAt:(I)C
istore 4 /* second */
start local 4 // char second
6: .line 273
iinc 3 /* len */ -1
7: .line 274
aload 0 /* this */
aload 0 /* this */
iload 4 /* second */
invokevirtual com.ctc.wstx.io.UTF8Writer._convertSurrogate:(I)I
invokevirtual com.ctc.wstx.io.UTF8Writer.write:(I)V
end local 4 // char second
8: .line 278
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
istore 4 /* outPtr */
start local 4 // int outPtr
9: .line 279
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
astore 5 /* outBuf */
start local 5 // byte[] outBuf
10: .line 280
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBufferLast:I
istore 6 /* outBufLast */
start local 6 // int outBufLast
11: .line 283
iload 3 /* len */
iload 2 /* off */
iadd
istore 3 /* len */
12: .line 286
goto 54
13: .line 290
StackMap locals: int byte[] int
StackMap stack:
iload 4 /* outPtr */
iload 6 /* outBufLast */
if_icmplt 16
14: .line 291
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
aload 5 /* outBuf */
iconst_0
iload 4 /* outPtr */
invokevirtual java.io.OutputStream.write:([BII)V
15: .line 292
iconst_0
istore 4 /* outPtr */
16: .line 295
StackMap locals:
StackMap stack:
aload 1 /* str */
iload 2 /* off */
iinc 2 /* off */ 1
invokevirtual java.lang.String.charAt:(I)C
istore 7 /* c */
start local 7 // int c
17: .line 297
iload 7 /* c */
sipush 128
if_icmpge 31
18: .line 298
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
iload 7 /* c */
i2b
bastore
19: .line 300
iload 3 /* len */
iload 2 /* off */
isub
istore 8 /* maxInCount */
start local 8 // int maxInCount
20: .line 301
iload 6 /* outBufLast */
iload 4 /* outPtr */
isub
istore 9 /* maxOutCount */
start local 9 // int maxOutCount
21: .line 303
iload 8 /* maxInCount */
iload 9 /* maxOutCount */
if_icmple 23
22: .line 304
iload 9 /* maxOutCount */
istore 8 /* maxInCount */
23: .line 306
StackMap locals: int int int
StackMap stack:
iload 8 /* maxInCount */
iload 2 /* off */
iadd
istore 8 /* maxInCount */
24: .line 309
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 8 /* maxInCount */
if_icmplt 26
25: .line 310
goto 54
26: .line 312
StackMap locals:
StackMap stack:
aload 1 /* str */
iload 2 /* off */
iinc 2 /* off */ 1
invokevirtual java.lang.String.charAt:(I)C
istore 7 /* c */
27: .line 313
iload 7 /* c */
sipush 128
if_icmplt 29
28: .line 314
goto 31
29: .line 316
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
iload 7 /* c */
i2b
bastore
30: .line 308
goto 24
end local 9 // int maxOutCount
end local 8 // int maxInCount
31: .line 321
StackMap locals:
StackMap stack:
iload 7 /* c */
sipush 2048
if_icmpge 35
32: .line 322
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 192
iload 7 /* c */
bipush 6
ishr
ior
i2b
bastore
33: .line 323
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
34: .line 324
goto 54
35: .line 326
StackMap locals:
StackMap stack:
iload 7 /* c */
ldc 55296
if_icmplt 36
iload 7 /* c */
ldc 57343
if_icmple 40
36: .line 327
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 224
iload 7 /* c */
bipush 12
ishr
ior
i2b
bastore
37: .line 328
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
38: .line 329
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
39: .line 330
goto 54
40: .line 333
StackMap locals:
StackMap stack:
iload 7 /* c */
ldc 56319
if_icmple 43
41: .line 334
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
42: .line 335
aload 0 /* this */
iload 7 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
43: .line 337
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* c */
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
44: .line 339
iload 2 /* off */
iload 3 /* len */
if_icmplt 46
45: .line 340
goto 55
46: .line 342
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* str */
iload 2 /* off */
iinc 2 /* off */ 1
invokevirtual java.lang.String.charAt:(I)C
invokevirtual com.ctc.wstx.io.UTF8Writer._convertSurrogate:(I)I
istore 7 /* c */
47: .line 343
iload 7 /* c */
ldc 1114111
if_icmple 50
48: .line 344
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
49: .line 345
aload 0 /* this */
iload 7 /* c */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
50: .line 347
StackMap locals:
StackMap stack:
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 240
iload 7 /* c */
bipush 18
ishr
ior
i2b
bastore
51: .line 348
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 12
ishr
bipush 63
iand
ior
i2b
bastore
52: .line 349
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 6
ishr
bipush 63
iand
ior
i2b
bastore
53: .line 350
aload 5 /* outBuf */
iload 4 /* outPtr */
iinc 4 /* outPtr */ 1
sipush 128
iload 7 /* c */
bipush 63
iand
ior
i2b
bastore
end local 7 // int c
54: .line 286
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 3 /* len */
if_icmplt 13
55: .line 353
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* outPtr */
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
56: .line 354
return
end local 6 // int outBufLast
end local 5 // byte[] outBuf
end local 4 // int outPtr
end local 3 // int len
end local 2 // int off
end local 1 // java.lang.String str
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 57 1 str Ljava/lang/String;
0 57 2 off I
0 57 3 len I
6 8 4 second C
9 57 4 outPtr I
10 57 5 outBuf [B
11 57 6 outBufLast I
17 54 7 c I
20 31 8 maxInCount I
21 31 9 maxOutCount I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
str
off
len
private final void _close(boolean);
descriptor: (Z)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=4, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // boolean forceClosing
0: .line 365
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
astore 2 /* buf */
start local 2 // byte[] buf
1: .line 366
aload 2 /* buf */
ifnull 8
2: .line 367
aload 0 /* this */
aconst_null
putfield com.ctc.wstx.io.UTF8Writer.mOutBuffer:[B
3: .line 368
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
ifle 6
4: .line 369
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
aload 2 /* buf */
iconst_0
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
invokevirtual java.io.OutputStream.write:([BII)V
5: .line 370
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mOutPtr:I
6: .line 372
StackMap locals: byte[]
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mConfig:Lcom/ctc/wstx/api/WriterConfig;
ifnull 8
7: .line 373
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mConfig:Lcom/ctc/wstx/api/WriterConfig;
aload 2 /* buf */
invokevirtual com.ctc.wstx.api.WriterConfig.freeFullBBuffer:([B)V
8: .line 377
StackMap locals:
StackMap stack:
iload 1 /* forceClosing */
ifeq 10
9: .line 378
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mOut:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
10: .line 384
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
istore 3 /* code */
start local 3 // int code
11: .line 385
iload 3 /* code */
ifle 14
12: .line 386
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
13: .line 387
aload 0 /* this */
iload 3 /* code */
invokevirtual com.ctc.wstx.io.UTF8Writer.throwIllegal:(I)V
14: .line 389
StackMap locals: int
StackMap stack:
return
end local 3 // int code
end local 2 // byte[] buf
end local 1 // boolean forceClosing
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 15 1 forceClosing Z
1 15 2 buf [B
11 15 3 code I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
forceClosing
private final int _convertSurrogate(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=3, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // int secondPart
0: .line 397
aload 0 /* this */
getfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
istore 2 /* firstPart */
start local 2 // int firstPart
1: .line 398
aload 0 /* this */
iconst_0
putfield com.ctc.wstx.io.UTF8Writer.mSurrogate:I
2: .line 401
iload 1 /* secondPart */
ldc 56320
if_icmplt 3
iload 1 /* secondPart */
ldc 57343
if_icmple 4
3: .line 402
StackMap locals: int
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Broken surrogate pair: first char 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2 /* firstPart */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", second 0x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1 /* secondPart */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "; illegal combination"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: .line 404
StackMap locals:
StackMap stack:
ldc 65536
iload 2 /* firstPart */
ldc 55296
isub
bipush 10
ishl
iadd
iload 1 /* secondPart */
ldc 56320
isub
iadd
ireturn
end local 2 // int firstPart
end local 1 // int secondPart
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 5 1 secondPart I
1 5 2 firstPart I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
secondPart
private void throwIllegal(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 // com.ctc.wstx.io.UTF8Writer this
start local 1 // int code
0: .line 410
iload 1 /* code */
ldc 1114111
if_icmple 2
1: .line 411
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Illegal character point (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* code */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") to output; max is 0x10FFFF as per RFC 3629"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: .line 413
StackMap locals:
StackMap stack:
iload 1 /* code */
ldc 55296
if_icmplt 6
3: .line 414
iload 1 /* code */
ldc 56319
if_icmpgt 5
4: .line 415
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Unmatched first part of surrogate pair (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* code */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: .line 417
StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Unmatched second part of surrogate pair (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* code */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: .line 421
StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Illegal character point (0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* code */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") to output"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 // int code
end local 0 // com.ctc.wstx.io.UTF8Writer this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/ctc/wstx/io/UTF8Writer;
0 7 1 code I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
code
}
SourceFile: "UTF8Writer.java"