aboutsummaryrefslogtreecommitdiffstats
path: root/delta.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-11-29 15:41:51 -0800
committerJunio C Hamano <gitster@pobox.com>2021-11-29 15:41:51 -0800
commitf9ba6acaa9348ea7b733bf78adc2f084247a912f (patch)
treebd702b925cea098b8e04bd49272c5faba336bf15 /delta.h
parentad1260b6c994f7c0f9c259bd39f39979f7f4ecc2 (diff)
parent596b5e77c960cc57ad2e68407b298411ec5e8cb8 (diff)
downloadgit-f9ba6acaa9348ea7b733bf78adc2f084247a912f.tar.gz
Merge branch 'mc/clean-smudge-with-llp64'
The clean/smudge conversion code path has been prepared to better work on platforms where ulong is narrower than size_t. * mc/clean-smudge-with-llp64: clean/smudge: allow clean filters to process extremely large files odb: guard against data loss checking out a huge file git-compat-util: introduce more size_t helpers odb: teach read_blob_entry to use size_t t1051: introduce a smudge filter test for extremely large files test-lib: add prerequisite for 64-bit platforms test-tool genzeros: generate large amounts of data more efficiently test-genzeros: allow more than 2G zeros in Windows
Diffstat (limited to 'delta.h')
-rw-r--r--delta.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/delta.h b/delta.h
index 2df5fe13d9..8a56ec0799 100644
--- a/delta.h
+++ b/delta.h
@@ -90,15 +90,15 @@ static inline unsigned long get_delta_hdr_size(const unsigned char **datap,
const unsigned char *top)
{
const unsigned char *data = *datap;
- unsigned long cmd, size = 0;
+ size_t cmd, size = 0;
int i = 0;
do {
cmd = *data++;
- size |= (cmd & 0x7f) << i;
+ size |= st_left_shift(cmd & 0x7f, i);
i += 7;
} while (cmd & 0x80 && data < top);
*datap = data;
- return size;
+ return cast_size_t_to_ulong(size);
}
#endif