pack-objects: move in_pack_pos out of struct object_entry
[git/git.git] / pack-objects.h
index cdce164..71ea992 100644 (file)
@@ -79,7 +79,6 @@ struct object_entry {
        unsigned in_pack_type:TYPE_BITS; /* could be delta */
        unsigned type_valid:1;
        uint32_t hash;                  /* name hint hash */
-       unsigned int in_pack_pos;
        unsigned char in_pack_header_size;
        unsigned preferred_base:1; /*
                                    * we do not pack this, but is available
@@ -99,6 +98,8 @@ struct packing_data {
 
        int32_t *index;
        uint32_t index_size;
+
+       unsigned int *in_pack_pos;
 };
 
 struct object_entry *packlist_alloc(struct packing_data *pdata,
@@ -144,4 +145,17 @@ static inline void oe_set_type(struct object_entry *e,
        e->type_ = (unsigned)type;
 }
 
+static inline unsigned int oe_in_pack_pos(const struct packing_data *pack,
+                                         const struct object_entry *e)
+{
+       return pack->in_pack_pos[e - pack->objects];
+}
+
+static inline void oe_set_in_pack_pos(const struct packing_data *pack,
+                                     const struct object_entry *e,
+                                     unsigned int pos)
+{
+       pack->in_pack_pos[e - pack->objects] = pos;
+}
+
 #endif