diff options
author | Kelvin Zhang <zhangkelvin@google.com> | 2021-04-19 19:47:48 -0400 |
---|---|---|
committer | Kelvin Zhang <zhangkelvin@google.com> | 2021-04-19 19:52:58 -0400 |
commit | 9e1d2fe1b6484bf6e693d104a7a30d0162d53e85 (patch) | |
tree | 6a5fca95ce93294ff06b53dbdfd4e3a81548cea3 | |
parent | 9a8f19b42f572fb4b8133b1ab4ab016218aebd8f (diff) | |
download | bsdiff-9e1d2fe1b6484bf6e693d104a7a30d0162d53e85.tar.gz |
Add comment explaining why we need custom logic to parse int
Test: no need
Change-Id: I71df7c09b260881b8753b77b6950ce97740d3191
-rw-r--r-- | utils.cc | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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; |