From ce4621d0268d761be96a482ca6b1eaac4da55c32 Mon Sep 17 00:00:00 2001 From: REAndroid Date: Sat, 25 Mar 2023 07:22:39 -0400 Subject: [PATCH] simplify put bit at index method --- .../com/reandroid/arsc/item/ByteArray.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/reandroid/arsc/item/ByteArray.java b/src/main/java/com/reandroid/arsc/item/ByteArray.java index 26746c9..09abcb1 100755 --- a/src/main/java/com/reandroid/arsc/item/ByteArray.java +++ b/src/main/java/com/reandroid/arsc/item/ByteArray.java @@ -80,7 +80,7 @@ public class ByteArray extends BlockItem { } return 0xff & b; } - public final void put(int index, int byteValue){ + public final void putByte(int index, int byteValue){ put(index, (byte) byteValue); } public final void put(int index, byte value){ @@ -91,18 +91,11 @@ public class ByteArray extends BlockItem { return ((get(byteOffset)>>bitIndex) & 0x1) == 1; } public void putBit(int byteOffset, int bitIndex, boolean bit){ - int val=get(byteOffset); - int left=val>>bitIndex; - if(bit){ - left=left|0x1; - }else { - left=left & 0xFE; - } - left=left<>bitIndex) & val; - val=left|right; - put(byteOffset, (byte) val); + int mask = 1 << bitIndex; + int add = bit ? mask : 0; + mask = (~mask) & 0xff; + int value = (get(byteOffset) & mask) | add; + putByte(byteOffset, value); } public final void putShort(int offset, int value){ putShort(offset, (short) value);