summaryrefslogtreecommitdiff
path: root/fast-import.c
diff options
context:
space:
mode:
authorMichael Lukashov <michael.lukashov@gmail.com>2010-02-16 23:42:54 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-02-17 23:30:20 (GMT)
commit1b22b6c897efa8aec6eeb51f72a73d507d5e336f (patch)
tree3c5bbefcdabc6c3f5dff047e78cbe8e6426a93a2 /fast-import.c
parent44e0f450350661b110c61ea0eff2657f58fe6ad0 (diff)
downloadgit-1b22b6c897efa8aec6eeb51f72a73d507d5e336f.zip
git-1b22b6c897efa8aec6eeb51f72a73d507d5e336f.tar.gz
git-1b22b6c897efa8aec6eeb51f72a73d507d5e336f.tar.bz2
refactor duplicated encode_header in pack-objects and fast-import
The following function is duplicated: encode_header Move this function to sha1_file.c and rename it 'encode_in_pack_object_header', as suggested by Junio C Hamano Signed-off-by: Michael Lukashov <michael.lukashov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fast-import.c')
-rw-r--r--fast-import.c29
1 files changed, 3 insertions, 26 deletions
diff --git a/fast-import.c b/fast-import.c
index 74f08bd..309f2c5 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -980,29 +980,6 @@ static void cycle_packfile(void)
start_packfile();
}
-static size_t encode_header(
- enum object_type type,
- uintmax_t size,
- unsigned char *hdr)
-{
- int n = 1;
- unsigned char c;
-
- if (type < OBJ_COMMIT || type > OBJ_REF_DELTA)
- die("bad type %d", type);
-
- c = (type << 4) | (size & 15);
- size >>= 4;
- while (size) {
- *hdr++ = c | 0x80;
- c = size & 0x7f;
- size >>= 7;
- n++;
- }
- *hdr = c;
- return n;
-}
-
static int store_object(
enum object_type type,
struct strbuf *dat,
@@ -1103,7 +1080,7 @@ static int store_object(
delta_count_by_type[type]++;
e->depth = last->depth + 1;
- hdrlen = encode_header(OBJ_OFS_DELTA, deltalen, hdr);
+ hdrlen = encode_in_pack_object_header(OBJ_OFS_DELTA, deltalen, hdr);
sha1write(pack_file, hdr, hdrlen);
pack_size += hdrlen;
@@ -1114,7 +1091,7 @@ static int store_object(
pack_size += sizeof(hdr) - pos;
} else {
e->depth = 0;
- hdrlen = encode_header(type, dat->len, hdr);
+ hdrlen = encode_in_pack_object_header(type, dat->len, hdr);
sha1write(pack_file, hdr, hdrlen);
pack_size += hdrlen;
}
@@ -1188,7 +1165,7 @@ static void stream_blob(uintmax_t len, unsigned char *sha1out, uintmax_t mark)
memset(&s, 0, sizeof(s));
deflateInit(&s, pack_compression_level);
- hdrlen = encode_header(OBJ_BLOB, len, out_buf);
+ hdrlen = encode_in_pack_object_header(OBJ_BLOB, len, out_buf);
if (out_sz <= hdrlen)
die("impossibly large object header");