diff options
author | Vicent Marti <tanoku@gmail.com> | 2013-10-24 14:01:29 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-10-24 15:44:52 -0700 |
commit | 68fb36eb92ff98ec81a066592a07b3f411450a1d (patch) | |
tree | 77bd96a2c222971d2e2846001bf73ed835bca8da /builtin | |
parent | pack-objects: refactor the packing list (diff) | |
download | tgif-68fb36eb92ff98ec81a066592a07b3f411450a1d.tar.xz |
pack-objects: factor out name_hash
As the pack-objects system grows beyond the single
pack-objects.c file, more parts (like the soon-to-exist
bitmap code) will need to compute hashes for matching
deltas. Factor out name_hash to make it available to other
files.
Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/pack-objects.c | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index f3f0cf95a8..faf746b2a7 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -778,26 +778,6 @@ static void write_pack_file(void) written, nr_result); } -static uint32_t name_hash(const char *name) -{ - uint32_t c, hash = 0; - - if (!name) - return 0; - - /* - * This effectively just creates a sortable number from the - * last sixteen non-whitespace characters. Last characters - * count "most", so things that end in ".c" sort together. - */ - while ((c = *name++) != 0) { - if (isspace(c)) - continue; - hash = (hash >> 2) + (c << 24); - } - return hash; -} - static void setup_delta_attr_check(struct git_attr_check *check) { static struct git_attr *attr_delta; @@ -826,7 +806,7 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type, struct object_entry *entry; struct packed_git *p, *found_pack = NULL; off_t found_offset = 0; - uint32_t hash = name_hash(name); + uint32_t hash = pack_name_hash(name); uint32_t index_pos; entry = packlist_find(&to_pack, sha1, &index_pos); @@ -1082,7 +1062,7 @@ static void add_preferred_base_object(const char *name) { struct pbase_tree *it; int cmplen; - unsigned hash = name_hash(name); + unsigned hash = pack_name_hash(name); if (!num_preferred_base || check_pbase_path(hash)) return; |