about summary refs log tree commit diff
path: root/third_party/git/pack-objects.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/pack-objects.h')
-rw-r--r--third_party/git/pack-objects.h27
1 files changed, 10 insertions, 17 deletions
diff --git a/third_party/git/pack-objects.h b/third_party/git/pack-objects.h
index 9d88e3e518f0..857d43850b62 100644
--- a/third_party/git/pack-objects.h
+++ b/third_party/git/pack-objects.h
@@ -183,10 +183,12 @@ static inline void packing_data_unlock(struct packing_data *pdata)
 }
 
 struct object_entry *packlist_alloc(struct packing_data *pdata,
-				    const struct object_id *oid);
+				    const unsigned char *sha1,
+				    uint32_t index_pos);
 
 struct object_entry *packlist_find(struct packing_data *pdata,
-				   const struct object_id *oid);
+				   const struct object_id *oid,
+				   uint32_t *index_pos);
 
 static inline uint32_t pack_name_hash(const char *name)
 {
@@ -251,21 +253,12 @@ static inline void oe_set_in_pack(struct packing_data *pack,
 				  struct object_entry *e,
 				  struct packed_git *p)
 {
-	if (pack->in_pack_by_idx) {
-		if (p->index) {
-			e->in_pack_idx = p->index;
-			return;
-		}
-		/*
-		 * We're accessing packs by index, but this pack doesn't have
-		 * an index (e.g., because it was added since we created the
-		 * in_pack_by_idx array). Bail to oe_map_new_pack(), which
-		 * will convert us to using the full in_pack array, and then
-		 * fall through to our in_pack handling.
-		 */
+	if (!p->index)
 		oe_map_new_pack(pack);
-	}
-	pack->in_pack[e - pack->objects] = p;
+	if (pack->in_pack_by_idx)
+		e->in_pack_idx = p->index;
+	else
+		pack->in_pack[e - pack->objects] = p;
 }
 
 static inline struct object_entry *oe_delta(
@@ -292,7 +285,7 @@ static inline void oe_set_delta(struct packing_data *pack,
 
 void oe_set_delta_ext(struct packing_data *pack,
 		      struct object_entry *e,
-		      const struct object_id *oid);
+		      const unsigned char *sha1);
 
 static inline struct object_entry *oe_delta_child(
 		const struct packing_data *pack,