diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2016-07-13 18:43:59 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-07-13 19:14:20 +0300 |
commit | 166df26f2821ea23b7c269a32fd63be43a2a0bb9 (patch) | |
tree | 3058361b91790c6e33afddcfe9c472f3d8a5b287 | |
parent | 211c61c6cf56699fc7b520a0206d23f5e4a7261b (diff) |
sha1_file.c: use type off_t* for object_info->disk_sizep
This field, filled by sha1_object_info() contains the on-disk size of
an object, which could go over 4GB limit of unsigned long on 32-bit
systems. Use off_t for it instead and update all callers.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/cat-file.c | 4 | ||||
-rw-r--r-- | cache.h | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 54db1184a0..13ed944d2d 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -131,7 +131,7 @@ struct expand_data { unsigned char sha1[20]; enum object_type type; unsigned long size; - unsigned long disk_size; + off_t disk_size; const char *rest; unsigned char delta_base_sha1[20]; @@ -184,7 +184,7 @@ static void expand_atom(struct strbuf *sb, const char *atom, int len, if (data->mark_query) data->info.disk_sizep = &data->disk_size; else - strbuf_addf(sb, "%lu", data->disk_size); + strbuf_addf(sb, "%"PRIuMAX, (uintmax_t)data->disk_size); } else if (is_atom("rest", atom, len)) { if (data->mark_query) data->split_on_whitespace = 1; @@ -1502,7 +1502,7 @@ struct object_info { /* Request */ enum object_type *typep; unsigned long *sizep; - unsigned long *disk_sizep; + off_t *disk_sizep; unsigned char *delta_base_sha1; struct strbuf *typename; |