summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-04-03 22:53:11 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-04-03 23:24:45 (GMT)
commit936f53d055c9a336e9ad89ad06c4efd56e5896e8 (patch)
treeaeab6b059f766cb2d519e88d37a3aa6bc32a9753 /read-cache.c
parentd60c49c2d7f683cd24a738533846cd3e34f2073e (diff)
downloadgit-936f53d055c9a336e9ad89ad06c4efd56e5896e8.zip
git-936f53d055c9a336e9ad89ad06c4efd56e5896e8.tar.gz
git-936f53d055c9a336e9ad89ad06c4efd56e5896e8.tar.bz2
read-cache.c: make create_from_disk() report number of bytes it consumed
The function is the one that is reading from the data stream. It only is natural to make it responsible for reporting this number, not the caller. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/read-cache.c b/read-cache.c
index d8865f5..58bfb24 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1305,7 +1305,8 @@ static inline uint32_t ntoh_l_force_align(void *p)
#define ntoh_l(var) ntoh_l_force_align(&(var))
#endif
-static struct cache_entry *create_from_disk(struct ondisk_cache_entry *ondisk)
+static struct cache_entry *create_from_disk(struct ondisk_cache_entry *ondisk,
+ unsigned long *ent_size)
{
struct cache_entry *ce;
size_t len;
@@ -1351,6 +1352,7 @@ static struct cache_entry *create_from_disk(struct ondisk_cache_entry *ondisk)
memcpy(ce->name, name, len);
ce->name[len] = '\0';
+ *ent_size = ondisk_ce_size(ce);
return ce;
}
@@ -1404,12 +1406,13 @@ int read_index_from(struct index_state *istate, const char *path)
for (i = 0; i < istate->cache_nr; i++) {
struct ondisk_cache_entry *disk_ce;
struct cache_entry *ce;
+ unsigned long consumed;
disk_ce = (struct ondisk_cache_entry *)((char *)mmap + src_offset);
- ce = create_from_disk(disk_ce);
+ ce = create_from_disk(disk_ce, &consumed);
set_index_entry(istate, i, ce);
- src_offset += ondisk_ce_size(ce);
+ src_offset += consumed;
}
istate->timestamp.sec = st.st_mtime;
istate->timestamp.nsec = ST_MTIME_NSEC(st);