public class java.util.Base64$Encoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.util.Base64$Encoder
super_class: java.lang.Object
{
private final byte[] newline;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int linemax;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isURL;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean doPadding;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final char[] toBase64;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] toBase64URL;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MIMELINEMAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 76
private static final byte[] CRLF;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.util.Base64$Encoder RFC4648;
descriptor: Ljava/util/Base64$Encoder;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.util.Base64$Encoder RFC4648_URLSAFE;
descriptor: Ljava/util/Base64$Encoder;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.util.Base64$Encoder RFC2045;
descriptor: Ljava/util/Base64$Encoder;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: .line 212
bipush 64
newarray 5
dup
iconst_0
1: .line 213
bipush 65
castore
dup
iconst_1
bipush 66
castore
dup
iconst_2
bipush 67
castore
dup
iconst_3
bipush 68
castore
dup
iconst_4
bipush 69
castore
dup
iconst_5
bipush 70
castore
dup
bipush 6
bipush 71
castore
dup
bipush 7
bipush 72
castore
dup
bipush 8
bipush 73
castore
dup
bipush 9
bipush 74
castore
dup
bipush 10
bipush 75
castore
dup
bipush 11
bipush 76
castore
dup
bipush 12
bipush 77
castore
dup
bipush 13
2: .line 214
bipush 78
castore
dup
bipush 14
bipush 79
castore
dup
bipush 15
bipush 80
castore
dup
bipush 16
bipush 81
castore
dup
bipush 17
bipush 82
castore
dup
bipush 18
bipush 83
castore
dup
bipush 19
bipush 84
castore
dup
bipush 20
bipush 85
castore
dup
bipush 21
bipush 86
castore
dup
bipush 22
bipush 87
castore
dup
bipush 23
bipush 88
castore
dup
bipush 24
bipush 89
castore
dup
bipush 25
bipush 90
castore
dup
bipush 26
3: .line 215
bipush 97
castore
dup
bipush 27
bipush 98
castore
dup
bipush 28
bipush 99
castore
dup
bipush 29
bipush 100
castore
dup
bipush 30
bipush 101
castore
dup
bipush 31
bipush 102
castore
dup
bipush 32
bipush 103
castore
dup
bipush 33
bipush 104
castore
dup
bipush 34
bipush 105
castore
dup
bipush 35
bipush 106
castore
dup
bipush 36
bipush 107
castore
dup
bipush 37
bipush 108
castore
dup
bipush 38
bipush 109
castore
dup
bipush 39
4: .line 216
bipush 110
castore
dup
bipush 40
bipush 111
castore
dup
bipush 41
bipush 112
castore
dup
bipush 42
bipush 113
castore
dup
bipush 43
bipush 114
castore
dup
bipush 44
bipush 115
castore
dup
bipush 45
bipush 116
castore
dup
bipush 46
bipush 117
castore
dup
bipush 47
bipush 118
castore
dup
bipush 48
bipush 119
castore
dup
bipush 49
bipush 120
castore
dup
bipush 50
bipush 121
castore
dup
bipush 51
bipush 122
castore
dup
bipush 52
5: .line 217
bipush 48
castore
dup
bipush 53
bipush 49
castore
dup
bipush 54
bipush 50
castore
dup
bipush 55
bipush 51
castore
dup
bipush 56
bipush 52
castore
dup
bipush 57
bipush 53
castore
dup
bipush 58
bipush 54
castore
dup
bipush 59
bipush 55
castore
dup
bipush 60
bipush 56
castore
dup
bipush 61
bipush 57
castore
dup
bipush 62
bipush 43
castore
dup
bipush 63
bipush 47
castore
6: .line 212
putstatic java.util.Base64$Encoder.toBase64:[C
7: .line 225
bipush 64
newarray 5
dup
iconst_0
8: .line 226
bipush 65
castore
dup
iconst_1
bipush 66
castore
dup
iconst_2
bipush 67
castore
dup
iconst_3
bipush 68
castore
dup
iconst_4
bipush 69
castore
dup
iconst_5
bipush 70
castore
dup
bipush 6
bipush 71
castore
dup
bipush 7
bipush 72
castore
dup
bipush 8
bipush 73
castore
dup
bipush 9
bipush 74
castore
dup
bipush 10
bipush 75
castore
dup
bipush 11
bipush 76
castore
dup
bipush 12
bipush 77
castore
dup
bipush 13
9: .line 227
bipush 78
castore
dup
bipush 14
bipush 79
castore
dup
bipush 15
bipush 80
castore
dup
bipush 16
bipush 81
castore
dup
bipush 17
bipush 82
castore
dup
bipush 18
bipush 83
castore
dup
bipush 19
bipush 84
castore
dup
bipush 20
bipush 85
castore
dup
bipush 21
bipush 86
castore
dup
bipush 22
bipush 87
castore
dup
bipush 23
bipush 88
castore
dup
bipush 24
bipush 89
castore
dup
bipush 25
bipush 90
castore
dup
bipush 26
10: .line 228
bipush 97
castore
dup
bipush 27
bipush 98
castore
dup
bipush 28
bipush 99
castore
dup
bipush 29
bipush 100
castore
dup
bipush 30
bipush 101
castore
dup
bipush 31
bipush 102
castore
dup
bipush 32
bipush 103
castore
dup
bipush 33
bipush 104
castore
dup
bipush 34
bipush 105
castore
dup
bipush 35
bipush 106
castore
dup
bipush 36
bipush 107
castore
dup
bipush 37
bipush 108
castore
dup
bipush 38
bipush 109
castore
dup
bipush 39
11: .line 229
bipush 110
castore
dup
bipush 40
bipush 111
castore
dup
bipush 41
bipush 112
castore
dup
bipush 42
bipush 113
castore
dup
bipush 43
bipush 114
castore
dup
bipush 44
bipush 115
castore
dup
bipush 45
bipush 116
castore
dup
bipush 46
bipush 117
castore
dup
bipush 47
bipush 118
castore
dup
bipush 48
bipush 119
castore
dup
bipush 49
bipush 120
castore
dup
bipush 50
bipush 121
castore
dup
bipush 51
bipush 122
castore
dup
bipush 52
12: .line 230
bipush 48
castore
dup
bipush 53
bipush 49
castore
dup
bipush 54
bipush 50
castore
dup
bipush 55
bipush 51
castore
dup
bipush 56
bipush 52
castore
dup
bipush 57
bipush 53
castore
dup
bipush 58
bipush 54
castore
dup
bipush 59
bipush 55
castore
dup
bipush 60
bipush 56
castore
dup
bipush 61
bipush 57
castore
dup
bipush 62
bipush 45
castore
dup
bipush 63
bipush 95
castore
13: .line 225
putstatic java.util.Base64$Encoder.toBase64URL:[C
14: .line 234
iconst_2
newarray 8
dup
iconst_0
bipush 13
bastore
dup
iconst_1
bipush 10
bastore
putstatic java.util.Base64$Encoder.CRLF:[B
15: .line 236
new java.util.Base64$Encoder
dup
iconst_0
aconst_null
iconst_m1
iconst_1
invokespecial java.util.Base64$Encoder.<init>:(Z[BIZ)V
putstatic java.util.Base64$Encoder.RFC4648:Ljava/util/Base64$Encoder;
16: .line 237
new java.util.Base64$Encoder
dup
iconst_1
aconst_null
iconst_m1
iconst_1
invokespecial java.util.Base64$Encoder.<init>:(Z[BIZ)V
putstatic java.util.Base64$Encoder.RFC4648_URLSAFE:Ljava/util/Base64$Encoder;
17: .line 238
new java.util.Base64$Encoder
dup
iconst_0
getstatic java.util.Base64$Encoder.CRLF:[B
bipush 76
iconst_1
invokespecial java.util.Base64$Encoder.<init>:(Z[BIZ)V
putstatic java.util.Base64$Encoder.RFC2045:Ljava/util/Base64$Encoder;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(boolean, byte[], int, boolean);
descriptor: (Z[BIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=5
start local 0 // java.util.Base64$Encoder this
start local 1 // boolean isURL
start local 2 // byte[] newline
start local 3 // int linemax
start local 4 // boolean doPadding
0: .line 200
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 201
aload 0 /* this */
iload 1 /* isURL */
putfield java.util.Base64$Encoder.isURL:Z
2: .line 202
aload 0 /* this */
aload 2 /* newline */
putfield java.util.Base64$Encoder.newline:[B
3: .line 203
aload 0 /* this */
iload 3 /* linemax */
putfield java.util.Base64$Encoder.linemax:I
4: .line 204
aload 0 /* this */
iload 4 /* doPadding */
putfield java.util.Base64$Encoder.doPadding:Z
5: .line 205
return
end local 4 // boolean doPadding
end local 3 // int linemax
end local 2 // byte[] newline
end local 1 // boolean isURL
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/Base64$Encoder;
0 6 1 isURL Z
0 6 2 newline [B
0 6 3 linemax I
0 6 4 doPadding Z
MethodParameters:
Name Flags
isURL
newline
linemax
doPadding
private final int outLength(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 // java.util.Base64$Encoder this
start local 1 // int srclen
0: .line 241
iconst_0
istore 2 /* len */
start local 2 // int len
1: .line 242
aload 0 /* this */
getfield java.util.Base64$Encoder.doPadding:Z
ifeq 4
2: .line 243
iconst_4
iload 1 /* srclen */
iconst_2
iadd
iconst_3
idiv
imul
istore 2 /* len */
3: .line 244
goto 8
4: .line 245
StackMap locals: int
StackMap stack:
iload 1 /* srclen */
iconst_3
irem
istore 3 /* n */
start local 3 // int n
5: .line 246
iconst_4
iload 1 /* srclen */
iconst_3
idiv
imul
iload 3 /* n */
ifne 6
iconst_0
goto 7
StackMap locals: java.util.Base64$Encoder int int int
StackMap stack: int
6: iload 3 /* n */
iconst_1
iadd
StackMap locals: java.util.Base64$Encoder int int int
StackMap stack: int int
7: iadd
istore 2 /* len */
end local 3 // int n
8: .line 248
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
ifle 10
9: .line 249
iload 2 /* len */
iload 2 /* len */
iconst_1
isub
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
idiv
aload 0 /* this */
getfield java.util.Base64$Encoder.newline:[B
arraylength
imul
iadd
istore 2 /* len */
10: .line 250
StackMap locals:
StackMap stack:
iload 2 /* len */
ireturn
end local 2 // int len
end local 1 // int srclen
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/Base64$Encoder;
0 11 1 srclen I
1 11 2 len I
5 8 3 n I
MethodParameters:
Name Flags
srclen
public byte[] encode(byte[]);
descriptor: ([B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 // java.util.Base64$Encoder this
start local 1 // byte[] src
0: .line 264
aload 0 /* this */
aload 1 /* src */
arraylength
invokevirtual java.util.Base64$Encoder.outLength:(I)I
istore 2 /* len */
start local 2 // int len
1: .line 265
iload 2 /* len */
newarray 8
astore 3 /* dst */
start local 3 // byte[] dst
2: .line 266
aload 0 /* this */
aload 1 /* src */
iconst_0
aload 1 /* src */
arraylength
aload 3 /* dst */
invokevirtual java.util.Base64$Encoder.encode0:([BII[B)I
istore 4 /* ret */
start local 4 // int ret
3: .line 267
iload 4 /* ret */
aload 3 /* dst */
arraylength
if_icmpeq 5
4: .line 268
aload 3 /* dst */
iload 4 /* ret */
invokestatic java.util.Arrays.copyOf:([BI)[B
areturn
5: .line 269
StackMap locals: int byte[] int
StackMap stack:
aload 3 /* dst */
areturn
end local 4 // int ret
end local 3 // byte[] dst
end local 2 // int len
end local 1 // byte[] src
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/Base64$Encoder;
0 6 1 src [B
1 6 2 len I
2 6 3 dst [B
3 6 4 ret I
MethodParameters:
Name Flags
src
public int encode(byte[], byte[]);
descriptor: ([B[B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 // java.util.Base64$Encoder this
start local 1 // byte[] src
start local 2 // byte[] dst
0: .line 292
aload 0 /* this */
aload 1 /* src */
arraylength
invokevirtual java.util.Base64$Encoder.outLength:(I)I
istore 3 /* len */
start local 3 // int len
1: .line 293
aload 2 /* dst */
arraylength
iload 3 /* len */
if_icmpge 5
2: .line 294
new java.lang.IllegalArgumentException
dup
3: .line 295
ldc "Output byte array is too small for encoding all input bytes"
4: .line 294
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: .line 296
StackMap locals: int
StackMap stack:
aload 0 /* this */
aload 1 /* src */
iconst_0
aload 1 /* src */
arraylength
aload 2 /* dst */
invokevirtual java.util.Base64$Encoder.encode0:([BII[B)I
ireturn
end local 3 // int len
end local 2 // byte[] dst
end local 1 // byte[] src
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/Base64$Encoder;
0 6 1 src [B
0 6 2 dst [B
1 6 3 len I
MethodParameters:
Name Flags
src
dst
public java.lang.String encodeToString(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 // java.util.Base64$Encoder this
start local 1 // byte[] src
0: .line 318
aload 0 /* this */
aload 1 /* src */
invokevirtual java.util.Base64$Encoder.encode:([B)[B
astore 2 /* encoded */
start local 2 // byte[] encoded
1: .line 319
new java.lang.String
dup
aload 2 /* encoded */
iconst_0
iconst_0
aload 2 /* encoded */
arraylength
invokespecial java.lang.String.<init>:([BIII)V
areturn
end local 2 // byte[] encoded
end local 1 // byte[] src
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/Base64$Encoder;
0 2 1 src [B
1 2 2 encoded [B
MethodParameters:
Name Flags
src
public java.nio.ByteBuffer encode(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 // java.util.Base64$Encoder this
start local 1 // java.nio.ByteBuffer buffer
0: .line 337
aload 0 /* this */
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.util.Base64$Encoder.outLength:(I)I
istore 2 /* len */
start local 2 // int len
1: .line 338
iload 2 /* len */
newarray 8
astore 3 /* dst */
start local 3 // byte[] dst
2: .line 339
iconst_0
istore 4 /* ret */
start local 4 // int ret
3: .line 340
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 11
4: .line 341
aload 0 /* this */
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.array:()[B
5: .line 342
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.position:()I
iadd
6: .line 343
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
iadd
7: .line 344
aload 3 /* dst */
8: .line 341
invokevirtual java.util.Base64$Encoder.encode0:([BII[B)I
istore 4 /* ret */
9: .line 345
aload 1 /* buffer */
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
10: .line 346
goto 14
11: .line 347
StackMap locals: int byte[] int
StackMap stack:
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.remaining:()I
newarray 8
astore 5 /* src */
start local 5 // byte[] src
12: .line 348
aload 1 /* buffer */
aload 5 /* src */
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
13: .line 349
aload 0 /* this */
aload 5 /* src */
iconst_0
aload 5 /* src */
arraylength
aload 3 /* dst */
invokevirtual java.util.Base64$Encoder.encode0:([BII[B)I
istore 4 /* ret */
end local 5 // byte[] src
14: .line 351
StackMap locals:
StackMap stack:
iload 4 /* ret */
aload 3 /* dst */
arraylength
if_icmpeq 16
15: .line 352
aload 3 /* dst */
iload 4 /* ret */
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 3 /* dst */
16: .line 353
StackMap locals:
StackMap stack:
aload 3 /* dst */
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
areturn
end local 4 // int ret
end local 3 // byte[] dst
end local 2 // int len
end local 1 // java.nio.ByteBuffer buffer
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/util/Base64$Encoder;
0 17 1 buffer Ljava/nio/ByteBuffer;
1 17 2 len I
2 17 3 dst [B
3 17 4 ret I
12 14 5 src [B
MethodParameters:
Name Flags
buffer
public java.io.OutputStream wrap(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 // java.util.Base64$Encoder this
start local 1 // java.io.OutputStream os
0: .line 371
aload 1 /* os */
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: .line 372
new java.util.Base64$EncOutputStream
dup
aload 1 /* os */
aload 0 /* this */
getfield java.util.Base64$Encoder.isURL:Z
ifeq 2
getstatic java.util.Base64$Encoder.toBase64URL:[C
goto 3
StackMap locals: java.util.Base64$Encoder java.io.OutputStream
StackMap stack: new 1 new 1 java.io.OutputStream
2: getstatic java.util.Base64$Encoder.toBase64:[C
3: .line 373
StackMap locals: java.util.Base64$Encoder java.io.OutputStream
StackMap stack: new 1 new 1 java.io.OutputStream char[]
aload 0 /* this */
getfield java.util.Base64$Encoder.newline:[B
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
aload 0 /* this */
getfield java.util.Base64$Encoder.doPadding:Z
4: .line 372
invokespecial java.util.Base64$EncOutputStream.<init>:(Ljava/io/OutputStream;[C[BIZ)V
areturn
end local 1 // java.io.OutputStream os
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/Base64$Encoder;
0 5 1 os Ljava/io/OutputStream;
MethodParameters:
Name Flags
os
public java.util.Base64$Encoder withoutPadding();
descriptor: ()Ljava/util/Base64$Encoder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 // java.util.Base64$Encoder this
0: .line 389
aload 0 /* this */
getfield java.util.Base64$Encoder.doPadding:Z
ifne 2
1: .line 390
aload 0 /* this */
areturn
2: .line 391
StackMap locals:
StackMap stack:
new java.util.Base64$Encoder
dup
aload 0 /* this */
getfield java.util.Base64$Encoder.isURL:Z
aload 0 /* this */
getfield java.util.Base64$Encoder.newline:[B
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
iconst_0
invokespecial java.util.Base64$Encoder.<init>:(Z[BIZ)V
areturn
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/Base64$Encoder;
private void encodeBlock(byte[], int, int, byte[], int, boolean);
descriptor: ([BII[BIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=7
start local 0 // java.util.Base64$Encoder this
start local 1 // byte[] src
start local 2 // int sp
start local 3 // int sl
start local 4 // byte[] dst
start local 5 // int dp
start local 6 // boolean isURL
0: .line 396
iload 6 /* isURL */
ifeq 1
getstatic java.util.Base64$Encoder.toBase64URL:[C
goto 2
StackMap locals:
StackMap stack:
1: getstatic java.util.Base64$Encoder.toBase64:[C
StackMap locals:
StackMap stack: char[]
2: astore 7 /* base64 */
start local 7 // char[] base64
3: .line 397
iload 2 /* sp */
istore 8 /* sp0 */
start local 8 // int sp0
4: iload 5 /* dp */
istore 9 /* dp0 */
start local 9 // int dp0
5: goto 15
6: .line 398
StackMap locals: char[] int int
StackMap stack:
aload 1 /* src */
iload 8 /* sp0 */
iinc 8 /* sp0 */ 1
baload
sipush 255
iand
bipush 16
ishl
7: .line 399
aload 1 /* src */
iload 8 /* sp0 */
iinc 8 /* sp0 */ 1
baload
sipush 255
iand
bipush 8
ishl
8: .line 398
ior
9: .line 400
aload 1 /* src */
iload 8 /* sp0 */
iinc 8 /* sp0 */ 1
baload
sipush 255
iand
10: .line 398
ior
istore 10 /* bits */
start local 10 // int bits
11: .line 401
aload 4 /* dst */
iload 9 /* dp0 */
iinc 9 /* dp0 */ 1
aload 7 /* base64 */
iload 10 /* bits */
bipush 18
iushr
bipush 63
iand
caload
i2b
bastore
12: .line 402
aload 4 /* dst */
iload 9 /* dp0 */
iinc 9 /* dp0 */ 1
aload 7 /* base64 */
iload 10 /* bits */
bipush 12
iushr
bipush 63
iand
caload
i2b
bastore
13: .line 403
aload 4 /* dst */
iload 9 /* dp0 */
iinc 9 /* dp0 */ 1
aload 7 /* base64 */
iload 10 /* bits */
bipush 6
iushr
bipush 63
iand
caload
i2b
bastore
14: .line 404
aload 4 /* dst */
iload 9 /* dp0 */
iinc 9 /* dp0 */ 1
aload 7 /* base64 */
iload 10 /* bits */
bipush 63
iand
caload
i2b
bastore
end local 10 // int bits
15: .line 397
StackMap locals:
StackMap stack:
iload 8 /* sp0 */
iload 3 /* sl */
if_icmplt 6
end local 9 // int dp0
end local 8 // int sp0
16: .line 406
return
end local 7 // char[] base64
end local 6 // boolean isURL
end local 5 // int dp
end local 4 // byte[] dst
end local 3 // int sl
end local 2 // int sp
end local 1 // byte[] src
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/util/Base64$Encoder;
0 17 1 src [B
0 17 2 sp I
0 17 3 sl I
0 17 4 dst [B
0 17 5 dp I
0 17 6 isURL Z
3 17 7 base64 [C
4 16 8 sp0 I
5 16 9 dp0 I
11 15 10 bits I
RuntimeVisibleAnnotations:
jdk.internal.HotSpotIntrinsicCandidate()
MethodParameters:
Name Flags
src
sp
sl
dst
dp
isURL
private int encode0(byte[], int, int, byte[]);
descriptor: ([BII[B)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=16, args_size=5
start local 0 // java.util.Base64$Encoder this
start local 1 // byte[] src
start local 2 // int off
start local 3 // int end
start local 4 // byte[] dst
0: .line 409
aload 0 /* this */
getfield java.util.Base64$Encoder.isURL:Z
ifeq 1
getstatic java.util.Base64$Encoder.toBase64URL:[C
goto 2
StackMap locals:
StackMap stack:
1: getstatic java.util.Base64$Encoder.toBase64:[C
StackMap locals:
StackMap stack: char[]
2: astore 5 /* base64 */
start local 5 // char[] base64
3: .line 410
iload 2 /* off */
istore 6 /* sp */
start local 6 // int sp
4: .line 411
iload 3 /* end */
iload 2 /* off */
isub
iconst_3
idiv
iconst_3
imul
istore 7 /* slen */
start local 7 // int slen
5: .line 412
iload 2 /* off */
iload 7 /* slen */
iadd
istore 8 /* sl */
start local 8 // int sl
6: .line 413
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
ifle 8
iload 7 /* slen */
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
iconst_4
idiv
iconst_3
imul
if_icmple 8
7: .line 414
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
iconst_4
idiv
iconst_3
imul
istore 7 /* slen */
8: .line 415
StackMap locals: java.util.Base64$Encoder byte[] int int byte[] char[] int int int
StackMap stack:
iconst_0
istore 9 /* dp */
start local 9 // int dp
9: .line 416
goto 21
10: .line 417
StackMap locals: int
StackMap stack:
iload 6 /* sp */
iload 7 /* slen */
iadd
iload 8 /* sl */
invokestatic java.lang.Math.min:(II)I
istore 10 /* sl0 */
start local 10 // int sl0
11: .line 418
aload 0 /* this */
aload 1 /* src */
iload 6 /* sp */
iload 10 /* sl0 */
aload 4 /* dst */
iload 9 /* dp */
aload 0 /* this */
getfield java.util.Base64$Encoder.isURL:Z
invokevirtual java.util.Base64$Encoder.encodeBlock:([BII[BIZ)V
12: .line 419
iload 10 /* sl0 */
iload 6 /* sp */
isub
iconst_3
idiv
iconst_4
imul
istore 11 /* dlen */
start local 11 // int dlen
13: .line 420
iload 9 /* dp */
iload 11 /* dlen */
iadd
istore 9 /* dp */
14: .line 421
iload 10 /* sl0 */
istore 6 /* sp */
15: .line 422
iload 11 /* dlen */
aload 0 /* this */
getfield java.util.Base64$Encoder.linemax:I
if_icmpne 21
iload 6 /* sp */
iload 3 /* end */
if_icmpge 21
16: .line 423
aload 0 /* this */
getfield java.util.Base64$Encoder.newline:[B
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 20
StackMap locals: java.util.Base64$Encoder byte[] int int byte[] char[] int int int int int int top int int byte[]
StackMap stack:
17: aload 15
iload 13
baload
istore 12 /* b */
start local 12 // byte b
18: .line 424
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
iload 12 /* b */
bastore
end local 12 // byte b
19: .line 423
iinc 13 1
StackMap locals:
StackMap stack:
20: iload 13
iload 14
if_icmplt 17
end local 11 // int dlen
end local 10 // int sl0
21: .line 416
StackMap locals: java.util.Base64$Encoder byte[] int int byte[] char[] int int int int
StackMap stack:
iload 6 /* sp */
iload 8 /* sl */
if_icmplt 10
22: .line 428
iload 6 /* sp */
iload 3 /* end */
if_icmpge 36
23: .line 429
aload 1 /* src */
iload 6 /* sp */
iinc 6 /* sp */ 1
baload
sipush 255
iand
istore 10 /* b0 */
start local 10 // int b0
24: .line 430
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
aload 5 /* base64 */
iload 10 /* b0 */
iconst_2
ishr
caload
i2b
bastore
25: .line 431
iload 6 /* sp */
iload 3 /* end */
if_icmpne 31
26: .line 432
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
aload 5 /* base64 */
iload 10 /* b0 */
iconst_4
ishl
bipush 63
iand
caload
i2b
bastore
27: .line 433
aload 0 /* this */
getfield java.util.Base64$Encoder.doPadding:Z
ifeq 36
28: .line 434
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
bipush 61
bastore
29: .line 435
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
bipush 61
bastore
30: .line 437
goto 36
31: .line 438
StackMap locals: int
StackMap stack:
aload 1 /* src */
iload 6 /* sp */
iinc 6 /* sp */ 1
baload
sipush 255
iand
istore 11 /* b1 */
start local 11 // int b1
32: .line 439
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
aload 5 /* base64 */
iload 10 /* b0 */
iconst_4
ishl
bipush 63
iand
iload 11 /* b1 */
iconst_4
ishr
ior
caload
i2b
bastore
33: .line 440
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
aload 5 /* base64 */
iload 11 /* b1 */
iconst_2
ishl
bipush 63
iand
caload
i2b
bastore
34: .line 441
aload 0 /* this */
getfield java.util.Base64$Encoder.doPadding:Z
ifeq 36
35: .line 442
aload 4 /* dst */
iload 9 /* dp */
iinc 9 /* dp */ 1
bipush 61
bastore
end local 11 // int b1
end local 10 // int b0
36: .line 446
StackMap locals:
StackMap stack:
iload 9 /* dp */
ireturn
end local 9 // int dp
end local 8 // int sl
end local 7 // int slen
end local 6 // int sp
end local 5 // char[] base64
end local 4 // byte[] dst
end local 3 // int end
end local 2 // int off
end local 1 // byte[] src
end local 0 // java.util.Base64$Encoder this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Ljava/util/Base64$Encoder;
0 37 1 src [B
0 37 2 off I
0 37 3 end I
0 37 4 dst [B
3 37 5 base64 [C
4 37 6 sp I
5 37 7 slen I
6 37 8 sl I
9 37 9 dp I
11 21 10 sl0 I
13 21 11 dlen I
18 19 12 b B
24 36 10 b0 I
32 36 11 b1 I
MethodParameters:
Name Flags
src
off
end
dst
}
SourceFile: "Base64.java"
NestHost: java.util.Base64
InnerClasses:
private EncOutputStream = java.util.Base64$EncOutputStream of java.util.Base64
public Encoder = java.util.Base64$Encoder of java.util.Base64