summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-04-03 22:53:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-04-03 23:24:46 (GMT)
commitf136f7bfe816b46ebabf5439f8e55f37097ca353 (patch)
tree7a1453054730da9aab82ad19f25a2252888dab12 /read-cache.c
parent3fc22b53313ff035da145b2cb59e587ff3868654 (diff)
downloadgit-f136f7bfe816b46ebabf5439f8e55f37097ca353.zip
git-f136f7bfe816b46ebabf5439f8e55f37097ca353.tar.gz
git-f136f7bfe816b46ebabf5439f8e55f37097ca353.tar.bz2
read-cache.c: move code to copy incore to ondisk cache to a helper function
This makes the change in a later patch look less scary. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/read-cache.c b/read-cache.c
index 82711c2..c159351 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1605,13 +1605,10 @@ static void ce_smudge_racily_clean_entry(struct cache_entry *ce)
}
}
-static int ce_write_entry(git_SHA_CTX *c, int fd, struct cache_entry *ce)
+/* Copy miscellaneous fields but not the name */
+static char *copy_cache_entry_to_ondisk(struct ondisk_cache_entry *ondisk,
+ struct cache_entry *ce)
{
- int size = ondisk_ce_size(ce);
- struct ondisk_cache_entry *ondisk = xcalloc(1, size);
- char *name;
- int result;
-
ondisk->ctime.sec = htonl(ce->ce_ctime.sec);
ondisk->mtime.sec = htonl(ce->ce_mtime.sec);
ondisk->ctime.nsec = htonl(ce->ce_ctime.nsec);
@@ -1628,10 +1625,21 @@ static int ce_write_entry(git_SHA_CTX *c, int fd, struct cache_entry *ce)
struct ondisk_cache_entry_extended *ondisk2;
ondisk2 = (struct ondisk_cache_entry_extended *)ondisk;
ondisk2->flags2 = htons((ce->ce_flags & CE_EXTENDED_FLAGS) >> 16);
- name = ondisk2->name;
+ return ondisk2->name;
}
- else
- name = ondisk->name;
+ else {
+ return ondisk->name;
+ }
+}
+
+static int ce_write_entry(git_SHA_CTX *c, int fd, struct cache_entry *ce)
+{
+ int size = ondisk_ce_size(ce);
+ struct ondisk_cache_entry *ondisk = xcalloc(1, size);
+ char *name;
+ int result;
+
+ name = copy_cache_entry_to_ondisk(ondisk, ce);
memcpy(name, ce->name, ce_namelen(ce));
result = ce_write(c, fd, ondisk, size);