public final class com.android.internal.util.BitUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.android.internal.util.BitUtils
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/util/BitUtils;
public static boolean maskedEquals(long, long, long);
descriptor: (JJJ)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 2 start local 4 0: lload 0
lload 4
land
lload 2
lload 4
land
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a J
0 2 2 b J
0 2 4 mask J
MethodParameters:
Name Flags
a
b
mask
public static boolean maskedEquals(byte, byte, byte);
descriptor: (BBB)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
iload 2
iand
iload 1
iload 2
iand
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a B
0 2 1 b B
0 2 2 mask B
MethodParameters:
Name Flags
a
b
mask
public static boolean maskedEquals(byte[], byte[], byte[]);
descriptor: ([B[B[B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 1
aload 1
ifnonnull 3
StackMap locals:
StackMap stack:
1: aload 0
aload 1
if_acmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
arraylength
aload 1
arraylength
if_icmpne 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "Inputs must be of same size"
invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
6: aload 2
ifnonnull 7
aload 0
aload 1
invokestatic java.util.Arrays.equals:([B[B)Z
ireturn
7: StackMap locals:
StackMap stack:
aload 0
arraylength
aload 2
arraylength
if_icmpne 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: ldc "Mask must be of same size as inputs"
invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
10: iconst_0
istore 3
start local 3 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 0
iload 3
baload
aload 1
iload 3
baload
aload 2
iload 3
baload
invokestatic com.android.internal.util.BitUtils.maskedEquals:(BBB)Z
ifne 13
iconst_0
ireturn
13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
aload 2
arraylength
if_icmplt 12
end local 3 15: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 a [B
0 16 1 b [B
0 16 2 mask [B
11 15 3 i I
MethodParameters:
Name Flags
a
b
mask
public static boolean maskedEquals(java.util.UUID, java.util.UUID, java.util.UUID);
descriptor: (Ljava/util/UUID;Ljava/util/UUID;Ljava/util/UUID;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aload 0
aload 1
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.UUID.getLeastSignificantBits:()J
aload 1
invokevirtual java.util.UUID.getLeastSignificantBits:()J
3: aload 2
invokevirtual java.util.UUID.getLeastSignificantBits:()J
4: invokestatic com.android.internal.util.BitUtils.maskedEquals:(JJJ)Z
5: ifeq 11
6: aload 0
invokevirtual java.util.UUID.getMostSignificantBits:()J
aload 1
invokevirtual java.util.UUID.getMostSignificantBits:()J
7: aload 2
invokevirtual java.util.UUID.getMostSignificantBits:()J
8: invokestatic com.android.internal.util.BitUtils.maskedEquals:(JJJ)Z
9: ifeq 11
10: iconst_1
ireturn
StackMap locals:
StackMap stack:
11: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 a Ljava/util/UUID;
0 12 1 b Ljava/util/UUID;
0 12 2 mask Ljava/util/UUID;
MethodParameters:
Name Flags
a
b
mask
public static int[] unpackBits(long);
descriptor: (J)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: lload 0
invokestatic java.lang.Long.bitCount:(J)I
istore 2
start local 2 1: iload 2
newarray 10
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 8
5: StackMap locals: long int int[] int int
StackMap stack:
lload 0
lconst_1
land
lconst_1
lcmp
ifne 6
aload 3
iload 4
iinc 4 1
iload 5
iastore
6: StackMap locals:
StackMap stack:
lload 0
iconst_1
lshr
lstore 0
7: iinc 5 1
8: StackMap locals:
StackMap stack:
lload 0
lconst_0
lcmp
ifgt 5
9: aload 3
areturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 val J
1 10 2 size I
2 10 3 result [I
3 10 4 index I
4 10 5 bitPos I
MethodParameters:
Name Flags
val
public static long packBits(int[]);
descriptor: ([I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: int[] long top int int int[]
StackMap stack:
2: aload 6
iload 4
iaload
istore 3
start local 3 3: lload 1
iconst_1
iload 3
ishl
i2l
lor
lstore 1
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 bits [I
1 7 1 packed J
3 4 3 b I
MethodParameters:
Name Flags
bits
public static int uint8(byte);
descriptor: (B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush 255
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 b B
MethodParameters:
Name Flags
b
public static int uint16(short);
descriptor: (S)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
ldc 65535
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s S
MethodParameters:
Name Flags
s
public static int uint16(byte, byte);
descriptor: (BB)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
sipush 255
iand
bipush 8
ishl
iload 1
sipush 255
iand
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hi B
0 1 1 lo B
MethodParameters:
Name Flags
hi
lo
public static long uint32(int);
descriptor: (I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iload 0
i2l
ldc 4294967295
land
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 i I
MethodParameters:
Name Flags
i
public static int bytesToBEInt(byte[]);
descriptor: ([B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
baload
invokestatic com.android.internal.util.BitUtils.uint8:(B)I
bipush 24
ishl
1: aload 0
iconst_1
baload
invokestatic com.android.internal.util.BitUtils.uint8:(B)I
bipush 16
ishl
2: iadd
3: aload 0
iconst_2
baload
invokestatic com.android.internal.util.BitUtils.uint8:(B)I
bipush 8
ishl
4: iadd
5: aload 0
iconst_3
baload
invokestatic com.android.internal.util.BitUtils.uint8:(B)I
6: iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 bytes [B
MethodParameters:
Name Flags
bytes
public static int bytesToLEInt(byte[]);
descriptor: ([B)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.android.internal.util.BitUtils.bytesToBEInt:([B)I
invokestatic java.lang.Integer.reverseBytes:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
MethodParameters:
Name Flags
bytes
public static int getUint8(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.android.internal.util.BitUtils.uint8:(B)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
0 1 1 position I
MethodParameters:
Name Flags
buffer
position
public static int getUint16(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.getShort:(I)S
invokestatic com.android.internal.util.BitUtils.uint16:(S)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
0 1 1 position I
MethodParameters:
Name Flags
buffer
position
public static long getUint32(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.getInt:(I)I
invokestatic com.android.internal.util.BitUtils.uint32:(I)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
0 1 1 position I
MethodParameters:
Name Flags
buffer
position
public static void put(java.nio.ByteBuffer, int, byte[]);
descriptor: (Ljava/nio/ByteBuffer;I[B)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.nio.ByteBuffer.position:()I
istore 3
start local 3 1: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
2: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
3: aload 0
iload 3
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 buffer Ljava/nio/ByteBuffer;
0 5 1 position I
0 5 2 bytes [B
1 5 3 original I
MethodParameters:
Name Flags
buffer
position
bytes
public static boolean isBitSet(long, int);
descriptor: (JI)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: lload 0
iload 2
invokestatic com.android.internal.util.BitUtils.bitAt:(I)J
land
lconst_0
lcmp
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 flags J
0 2 2 bitIndex I
MethodParameters:
Name Flags
flags
bitIndex
public static long bitAt(int);
descriptor: (I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: lconst_1
iload 0
lshl
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bitIndex I
MethodParameters:
Name Flags
bitIndex
public static java.lang.String flagsToString(int, java.util.function.IntFunction<java.lang.String>);
descriptor: (ILjava/util/function/IntFunction;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 8
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iconst_1
iload 0
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
ishl
istore 4
start local 4 4: iload 0
iload 4
iconst_m1
ixor
iand
istore 0
5: iload 3
ifle 6
aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals: int
StackMap stack:
aload 2
aload 1
iload 4
invokeinterface java.util.function.IntFunction.apply:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: iinc 3 1
end local 4 8: StackMap locals:
StackMap stack:
iload 0
ifne 3
9: aload 2
ldc "["
ldc "]"
invokestatic android.text.TextUtils.wrap:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
10: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 flags I
0 11 1 getFlagName Ljava/util/function/IntFunction<Ljava/lang/String;>;
1 11 2 builder Ljava/lang/StringBuilder;
2 11 3 count I
4 8 4 flag I
Signature: (ILjava/util/function/IntFunction<Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
flags
getFlagName
}
SourceFile: "BitUtils.java"