diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-11-29 15:41:51 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-11-29 15:41:51 -0800 |
commit | f9ba6acaa9348ea7b733bf78adc2f084247a912f (patch) | |
tree | bd702b925cea098b8e04bd49272c5faba336bf15 /entry.c | |
parent | ad1260b6c994f7c0f9c259bd39f39979f7f4ecc2 (diff) | |
parent | 596b5e77c960cc57ad2e68407b298411ec5e8cb8 (diff) | |
download | git-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 'entry.c')
-rw-r--r-- | entry.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -82,11 +82,13 @@ static int create_file(const char *path, unsigned int mode) return open(path, O_WRONLY | O_CREAT | O_EXCL, mode); } -void *read_blob_entry(const struct cache_entry *ce, unsigned long *size) +void *read_blob_entry(const struct cache_entry *ce, size_t *size) { enum object_type type; - void *blob_data = read_object_file(&ce->oid, &type, size); + unsigned long ul; + void *blob_data = read_object_file(&ce->oid, &type, &ul); + *size = ul; if (blob_data) { if (type == OBJ_BLOB) return blob_data; @@ -271,7 +273,7 @@ static int write_entry(struct cache_entry *ce, char *path, struct conv_attrs *ca int fd, ret, fstat_done = 0; char *new_blob; struct strbuf buf = STRBUF_INIT; - unsigned long size; + size_t size; ssize_t wrote; size_t newsize = 0; struct stat st; |