summaryrefslogtreecommitdiff
path: root/delta.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-06-21 21:14:09 -0700
committerJunio C Hamano <gitster@pobox.com>2009-06-21 21:14:09 -0700
commit44fb185963d42bb1dd6f1b3ea690d2a8f3c4edbc (patch)
treee416edac27adfd1cf790f2aaa493b0e61a26d10f /delta.h
parent037e9d5b1575d7ede05b50c317d9d88258556d84 (diff)
parent48fb7deb5bbd87933e7d314b73d7c1b52667f80f (diff)
downloadgit-44fb185963d42bb1dd6f1b3ea690d2a8f3c4edbc.tar.gz
Merge branch 'lt/maint-unsigned-left-shift' into maint
* lt/maint-unsigned-left-shift: Fix big left-shifts of unsigned char
Diffstat (limited to 'delta.h')
-rw-r--r--delta.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/delta.h b/delta.h
index 40ccf5a1e9..b9d333dd5a 100644
--- a/delta.h
+++ b/delta.h
@@ -90,12 +90,11 @@ static inline unsigned long get_delta_hdr_size(const unsigned char **datap,
const unsigned char *top)
{
const unsigned char *data = *datap;
- unsigned char cmd;
- unsigned long size = 0;
+ unsigned long cmd, size = 0;
int i = 0;
do {
cmd = *data++;
- size |= (cmd & ~0x80) << i;
+ size |= (cmd & 0x7f) << i;
i += 7;
} while (cmd & 0x80 && data < top);
*datap = data;