mirror of
https://github.com/expo/bsdiff.git
synced 2026-11-13 20:11:27 -10:00
Merge "Add comment explaining why we need custom logic to parse int" am: be81a990b3
Original change: https://android-review.googlesource.com/c/platform/external/bsdiff/+/1680665 Change-Id: Ie12b010d9c27b95ef7c4825887b55a969a6fee3b
This commit is contained in:
commit
94af5fff58
1 file changed
+5
@@ -7,6 +7,11 @@
|
||||
namespace bsdiff {
|
||||
|
||||
int64_t ParseInt64(const uint8_t* buf) {
|
||||
// BSPatch uses a non-standard encoding of integers.
|
||||
// Highest bit of that integer is used as a sign bit, 1 = negative
|
||||
// and 0 = positive.
|
||||
// Therefore, if the highest bit is set, flip it, then do 2's complement
|
||||
// to get the integer in standard form
|
||||
int64_t result = buf[7] & 0x7F;
|
||||
for (int i = 6; i >= 0; i--) {
|
||||
result <<= 8;
|
||||
|
||||
Reference in new issue
Block a user