summaryrefslogtreecommitdiff
path: root/entry.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-11-29 23:41:51 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-11-29 23:41:51 (GMT)
commitf9ba6acaa9348ea7b733bf78adc2f084247a912f (patch)
treebd702b925cea098b8e04bd49272c5faba336bf15 /entry.c
parentad1260b6c994f7c0f9c259bd39f39979f7f4ecc2 (diff)
parent596b5e77c960cc57ad2e68407b298411ec5e8cb8 (diff)
downloadgit-f9ba6acaa9348ea7b733bf78adc2f084247a912f.zip
git-f9ba6acaa9348ea7b733bf78adc2f084247a912f.tar.gz
git-f9ba6acaa9348ea7b733bf78adc2f084247a912f.tar.bz2
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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/entry.c b/entry.c
index 9b0f968..1c9df62 100644
--- a/entry.c
+++ b/entry.c
@@ -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;