Skip to content

Commit

Permalink
pack-objects: shrink struct object_entry
Browse files Browse the repository at this point in the history
Turn some boolean fields into bitfields and use uint32_t for name
hash.  This shrinks the size of the structure from 128 bytes to 120
bytes.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Feb 4, 2013
1 parent f51a757 commit 63cdcfa
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions builtin/pack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,18 @@ struct object_entry {
void *delta_data; /* cached delta (uncompressed) */
unsigned long delta_size; /* delta data size (uncompressed) */
unsigned long z_delta_size; /* delta data size (compressed) */
unsigned int hash; /* name hint hash */
enum object_type type;
enum object_type in_pack_type; /* could be delta */
uint32_t hash; /* name hint hash */
unsigned char in_pack_header_size;
unsigned char preferred_base; /* we do not pack this, but is available
* to be used as the base object to delta
* objects against.
*/
unsigned char no_try_delta;
unsigned char tagged; /* near the very tip of refs */
unsigned char filled; /* assigned write-order */
unsigned preferred_base:1; /*
* we do not pack this, but is available
* to be used as the base object to delta
* objects against.
*/
unsigned no_try_delta:1;
unsigned tagged:1; /* near the very tip of refs */
unsigned filled:1; /* assigned write-order */
};

/*
Expand Down Expand Up @@ -859,9 +860,9 @@ static void rehash_objects(void)
}
}

static unsigned name_hash(const char *name)
static uint32_t name_hash(const char *name)
{
unsigned c, hash = 0;
uint32_t c, hash = 0;

if (!name)
return 0;
Expand Down Expand Up @@ -908,7 +909,7 @@ static int add_object_entry(const unsigned char *sha1, enum object_type type,
struct packed_git *p, *found_pack = NULL;
off_t found_offset = 0;
int ix;
unsigned hash = name_hash(name);
uint32_t hash = name_hash(name);

ix = nr_objects ? locate_object_entry_hash(sha1) : -1;
if (ix >= 0) {
Expand Down

0 comments on commit 63cdcfa

Please sign in to comment.