public class sun.security.util.BitArray
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.util.BitArray
super_class: java.lang.Object
{
private byte[] repn;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int length;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int BITS_PER_UNIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final byte[][] NYBBLE;
descriptor: [[B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int BYTES_PER_LINE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: bipush 16
anewarray byte[]
dup
iconst_0
1: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
iconst_1
2: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
iconst_2
3: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
iconst_3
4: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
iconst_4
5: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
iconst_5
6: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
bipush 6
7: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
bipush 7
8: iconst_4
newarray 8
dup
iconst_0
bipush 48
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
bipush 8
9: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
bipush 9
10: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
bipush 10
11: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
bipush 11
12: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 48
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
bipush 12
13: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
bipush 13
14: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 48
bastore
dup
iconst_3
bipush 49
bastore
aastore
dup
bipush 14
15: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 48
bastore
aastore
dup
bipush 15
16: iconst_4
newarray 8
dup
iconst_0
bipush 49
bastore
dup
iconst_1
bipush 49
bastore
dup
iconst_2
bipush 49
bastore
dup
iconst_3
bipush 49
bastore
aastore
17: putstatic sun.security.util.BitArray.NYBBLE:[[B
18: return
LocalVariableTable:
Start End Slot Name Signature
private static int subscript(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 8
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 idx I
MethodParameters:
Name Flags
idx
private static int position(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_1
bipush 7
iload 0
bipush 8
irem
isub
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 idx I
MethodParameters:
Name Flags
idx
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iload 1
ifge 3
2: new java.lang.IllegalArgumentException
dup
ldc "Negative length for BitArray"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: sun.security.util.BitArray int
StackMap stack:
aload 0
iload 1
putfield sun.security.util.BitArray.length:I
4: aload 0
iload 1
bipush 8
iadd
iconst_1
isub
bipush 8
idiv
newarray 8
putfield sun.security.util.BitArray.repn:[B
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/BitArray;
0 6 1 length I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
length
public void <init>(int, byte[]);
descriptor: (I[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iload 1
ifge 3
2: new java.lang.IllegalArgumentException
dup
ldc "Negative length for BitArray"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: sun.security.util.BitArray int byte[]
StackMap stack:
aload 2
arraylength
bipush 8
imul
iload 1
if_icmpge 5
4: new java.lang.IllegalArgumentException
dup
ldc "Byte array too short to represent bit array of given length"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield sun.security.util.BitArray.length:I
6: iload 1
bipush 8
iadd
iconst_1
isub
bipush 8
idiv
istore 3
start local 3 7: iload 3
bipush 8
imul
iload 1
isub
istore 4
start local 4 8: sipush 255
iload 4
ishl
i2b
istore 5
start local 5 9: aload 0
iload 3
newarray 8
putfield sun.security.util.BitArray.repn:[B
10: aload 2
iconst_0
aload 0
getfield sun.security.util.BitArray.repn:[B
iconst_0
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: iload 3
ifle 13
12: aload 0
getfield sun.security.util.BitArray.repn:[B
iload 3
iconst_1
isub
dup2
baload
iload 5
iand
i2b
bastore
13: StackMap locals: int int int
StackMap stack:
return
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 14 0 this Lsun/security/util/BitArray;
0 14 1 length I
0 14 2 a [B
7 14 3 repLength I
8 14 4 unusedBits I
9 14 5 bitMask B
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
length
a
public void <init>(boolean[]);
descriptor: ([Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
arraylength
putfield sun.security.util.BitArray.length:I
2: aload 0
aload 0
getfield sun.security.util.BitArray.length:I
bipush 7
iadd
bipush 8
idiv
newarray 8
putfield sun.security.util.BitArray.repn:[B
3: iconst_0
istore 2
start local 2 4: goto 7
5: StackMap locals: sun.security.util.BitArray boolean[] int
StackMap stack:
aload 0
iload 2
aload 1
iload 2
baload
invokevirtual sun.security.util.BitArray.set:(IZ)V
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield sun.security.util.BitArray.length:I
if_icmplt 5
end local 2 8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/util/BitArray;
0 9 1 bits [Z
4 8 2 i I
MethodParameters:
Name Flags
bits
private void <init>(sun.security.util.BitArray);
descriptor: (Lsun/security/util/BitArray;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
getfield sun.security.util.BitArray.length:I
putfield sun.security.util.BitArray.length:I
2: aload 0
aload 1
getfield sun.security.util.BitArray.repn:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.util.BitArray.repn:[B
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/BitArray;
0 4 1 ba Lsun/security/util/BitArray;
MethodParameters:
Name Flags
ba
public boolean get(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield sun.security.util.BitArray.length:I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
iload 1
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 1
invokestatic sun.security.util.BitArray.subscript:(I)I
baload
iload 1
invokestatic sun.security.util.BitArray.position:(I)I
iand
ifeq 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/BitArray;
0 4 1 index I
Exceptions:
throws java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
index
public void set(int, boolean);
descriptor: (IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iflt 1
iload 1
aload 0
getfield sun.security.util.BitArray.length:I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
iload 1
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
invokestatic sun.security.util.BitArray.subscript:(I)I
istore 3
start local 3 3: iload 1
invokestatic sun.security.util.BitArray.position:(I)I
istore 4
start local 4 4: iload 2
ifeq 7
5: aload 0
getfield sun.security.util.BitArray.repn:[B
iload 3
dup2
baload
iload 4
ior
i2b
bastore
6: goto 8
7: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 3
dup2
baload
iload 4
iconst_m1
ixor
iand
i2b
bastore
8: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/util/BitArray;
0 9 1 index I
0 9 2 value Z
3 9 3 idx I
4 9 4 bit I
Exceptions:
throws java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
index
value
public int length();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.BitArray.length:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/BitArray;
public byte[] toByteArray();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.BitArray.repn:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/BitArray;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
aload 1
ifnull 2
aload 1
instanceof sun.security.util.BitArray
ifne 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
checkcast sun.security.util.BitArray
astore 2
start local 2 4: aload 2
getfield sun.security.util.BitArray.length:I
aload 0
getfield sun.security.util.BitArray.length:I
if_icmpeq 5
iconst_0
ireturn
5: StackMap locals: sun.security.util.BitArray
StackMap stack:
iconst_0
istore 3
start local 3 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 3
baload
aload 2
getfield sun.security.util.BitArray.repn:[B
iload 3
baload
if_icmpeq 8
iconst_0
ireturn
8: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 0
getfield sun.security.util.BitArray.repn:[B
arraylength
if_icmplt 7
end local 3 10: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/util/BitArray;
0 11 1 obj Ljava/lang/Object;
4 11 2 ba Lsun/security/util/BitArray;
6 10 3 i I
MethodParameters:
Name Flags
obj
public boolean[] toBooleanArray();
descriptor: ()[Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.util.BitArray.length:I
newarray 4
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: boolean[] int
StackMap stack:
aload 1
iload 2
aload 0
iload 2
invokevirtual sun.security.util.BitArray.get:(I)Z
bastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield sun.security.util.BitArray.length:I
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/BitArray;
1 7 1 bits [Z
2 6 2 i I
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int int
StackMap stack:
bipush 31
iload 1
imul
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 2
baload
iadd
istore 1
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield sun.security.util.BitArray.repn:[B
arraylength
if_icmplt 3
end local 2 6: iload 1
aload 0
getfield sun.security.util.BitArray.length:I
ixor
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/BitArray;
1 7 1 hashCode I
2 6 2 i I
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.security.util.BitArray
dup
aload 0
invokespecial sun.security.util.BitArray.<init>:(Lsun/security/util/BitArray;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/BitArray;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 10
3: StackMap locals: java.io.ByteArrayOutputStream int
StackMap stack:
aload 1
getstatic sun.security.util.BitArray.NYBBLE:[[B
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 2
baload
iconst_4
ishr
bipush 15
iand
aaload
iconst_0
iconst_4
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
4: aload 1
getstatic sun.security.util.BitArray.NYBBLE:[[B
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 2
baload
bipush 15
iand
aaload
iconst_0
iconst_4
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
5: iload 2
bipush 8
irem
bipush 7
if_icmpne 8
6: aload 1
bipush 10
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 1
bipush 32
invokevirtual java.io.ByteArrayOutputStream.write:(I)V
9: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
10: iload 2
aload 0
getfield sun.security.util.BitArray.repn:[B
arraylength
iconst_1
isub
if_icmplt 3
end local 2 11: bipush 8
aload 0
getfield sun.security.util.BitArray.repn:[B
arraylength
iconst_1
isub
imul
istore 2
start local 2 12: goto 17
13: StackMap locals:
StackMap stack:
aload 1
aload 0
iload 2
invokevirtual sun.security.util.BitArray.get:(I)Z
ifeq 14
bipush 49
goto 15
StackMap locals:
StackMap stack: java.io.ByteArrayOutputStream
14: bipush 48
StackMap locals: sun.security.util.BitArray java.io.ByteArrayOutputStream int
StackMap stack: java.io.ByteArrayOutputStream int
15: invokevirtual java.io.ByteArrayOutputStream.write:(I)V
16: iinc 2 1
StackMap locals:
StackMap stack:
17: iload 2
aload 0
getfield sun.security.util.BitArray.length:I
if_icmplt 13
end local 2 18: new java.lang.String
dup
aload 1
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.lang.String.<init>:([B)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/util/BitArray;
1 19 1 out Ljava/io/ByteArrayOutputStream;
2 11 2 i I
12 18 2 i I
public sun.security.util.BitArray truncate();
descriptor: ()Lsun/security/util/BitArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.util.BitArray.length:I
iconst_1
isub
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual sun.security.util.BitArray.get:(I)Z
ifeq 4
3: new sun.security.util.BitArray
dup
iload 1
iconst_1
iadd
aload 0
getfield sun.security.util.BitArray.repn:[B
iload 1
bipush 8
iadd
bipush 8
idiv
invokestatic java.util.Arrays.copyOf:([BI)[B
invokespecial sun.security.util.BitArray.<init>:(I[B)V
areturn
4: StackMap locals:
StackMap stack:
iinc 1 -1
StackMap locals:
StackMap stack:
5: iload 1
ifge 2
end local 1 6: new sun.security.util.BitArray
dup
iconst_1
invokespecial sun.security.util.BitArray.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/BitArray;
1 6 1 i I
}
SourceFile: "BitArray.java"