All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Christian Couder <christian.couder@gmail.com>
Cc: git@vger.kernel.org, "Junio C Hamano" <gitster@pobox.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Jonathan Tan" <jonathantanmy@google.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>,
	"Christian Couder" <chriscool@tuxfamily.org>
Subject: [PATCH 13/17] pack-bitmap: convert khash_sha1 maps into kh_oid_map
Date: Thu, 20 Jun 2019 03:41:35 -0400	[thread overview]
Message-ID: <20190620074135.GM3713@sigill.intra.peff.net> (raw)
In-Reply-To: <20190620073952.GA1539@sigill.intra.peff.net>

All of the users of our khash_sha1 maps actually have a "struct
object_id". Let's use the more descriptive type.

Signed-off-by: Jeff King <peff@peff.net>
---
 pack-bitmap-write.c | 14 +++++++-------
 pack-bitmap.c       |  8 ++++----
 pack-bitmap.h       |  2 +-
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c
index 0637378533..fa78a460c9 100644
--- a/pack-bitmap-write.c
+++ b/pack-bitmap-write.c
@@ -28,8 +28,8 @@ struct bitmap_writer {
 	struct ewah_bitmap *blobs;
 	struct ewah_bitmap *tags;
 
-	khash_sha1 *bitmaps;
-	khash_sha1 *reused;
+	kh_oid_map_t *bitmaps;
+	kh_oid_map_t *reused;
 	struct packing_data *to_pack;
 
 	struct bitmapped_commit *selected;
@@ -175,7 +175,7 @@ add_to_include_set(struct bitmap *base, struct commit *commit)
 	if (bitmap_get(base, bitmap_pos))
 		return 0;
 
-	hash_pos = kh_get_sha1(writer.bitmaps, commit->object.oid.hash);
+	hash_pos = kh_get_oid_map(writer.bitmaps, commit->object.oid);
 	if (hash_pos < kh_end(writer.bitmaps)) {
 		struct bitmapped_commit *bc = kh_value(writer.bitmaps, hash_pos);
 		bitmap_or_ewah(base, bc->bitmap);
@@ -256,7 +256,7 @@ void bitmap_writer_build(struct packing_data *to_pack)
 	struct bitmap *base = bitmap_new();
 	struct rev_info revs;
 
-	writer.bitmaps = kh_init_sha1();
+	writer.bitmaps = kh_init_oid_map();
 	writer.to_pack = to_pack;
 
 	if (writer.show_progress)
@@ -311,7 +311,7 @@ void bitmap_writer_build(struct packing_data *to_pack)
 		if (i >= reuse_after)
 			stored->flags |= BITMAP_FLAG_REUSE;
 
-		hash_pos = kh_put_sha1(writer.bitmaps, object->oid.hash, &hash_ret);
+		hash_pos = kh_put_oid_map(writer.bitmaps, object->oid, &hash_ret);
 		if (hash_ret == 0)
 			die("Duplicate entry when writing index: %s",
 			    oid_to_hex(&object->oid));
@@ -366,7 +366,7 @@ void bitmap_writer_reuse_bitmaps(struct packing_data *to_pack)
 	if (!(bitmap_git = prepare_bitmap_git(to_pack->repo)))
 		return;
 
-	writer.reused = kh_init_sha1();
+	writer.reused = kh_init_oid_map();
 	rebuild_existing_bitmaps(bitmap_git, to_pack, writer.reused,
 				 writer.show_progress);
 	/*
@@ -382,7 +382,7 @@ static struct ewah_bitmap *find_reused_bitmap(const struct object_id *oid)
 	if (!writer.reused)
 		return NULL;
 
-	hash_pos = kh_get_sha1(writer.reused, oid->hash);
+	hash_pos = kh_get_oid_map(writer.reused, *oid);
 	if (hash_pos >= kh_end(writer.reused))
 		return NULL;
 
diff --git a/pack-bitmap.c b/pack-bitmap.c
index 998133588f..ed2befaac6 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -1041,7 +1041,7 @@ static int rebuild_bitmap(uint32_t *reposition,
 
 int rebuild_existing_bitmaps(struct bitmap_index *bitmap_git,
 			     struct packing_data *mapping,
-			     khash_sha1 *reused_bitmaps,
+			     kh_oid_map_t *reused_bitmaps,
 			     int show_progress)
 {
 	uint32_t i, num_objects;
@@ -1080,9 +1080,9 @@ int rebuild_existing_bitmaps(struct bitmap_index *bitmap_git,
 			if (!rebuild_bitmap(reposition,
 					    lookup_stored_bitmap(stored),
 					    rebuild)) {
-				hash_pos = kh_put_sha1(reused_bitmaps,
-						       stored->oid.hash,
-						       &hash_ret);
+				hash_pos = kh_put_oid_map(reused_bitmaps,
+							  stored->oid,
+							  &hash_ret);
 				kh_value(reused_bitmaps, hash_pos) =
 					bitmap_to_ewah(rebuild);
 			}
diff --git a/pack-bitmap.h b/pack-bitmap.h
index ee9792264c..00de3ec8e4 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -51,7 +51,7 @@ int reuse_partial_packfile_from_bitmap(struct bitmap_index *,
 				       struct packed_git **packfile,
 				       uint32_t *entries, off_t *up_to);
 int rebuild_existing_bitmaps(struct bitmap_index *, struct packing_data *mapping,
-			     khash_sha1 *reused_bitmaps, int show_progress);
+			     kh_oid_map_t *reused_bitmaps, int show_progress);
 void free_bitmap_index(struct bitmap_index *);
 
 /*
-- 
2.22.0.732.g5402924b4b


  parent reply	other threads:[~2019-06-20  7:41 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-15 10:06 [PATCH v4 0/4] Test oidmap Christian Couder
2019-06-15 10:06 ` [PATCH v4 1/4] t/helper: add test-oidmap.c Christian Couder
2019-06-15 10:07 ` [PATCH v4 2/4] t: add t0016-oidmap.sh Christian Couder
2019-06-15 10:07 ` [PATCH v4 3/4] oidmap: use sha1hash() instead of static hash() function Christian Couder
2019-06-15 10:07 ` [PATCH v4 4/4] test-hashmap: remove 'hash' command Christian Couder
2019-06-19 21:42 ` [PATCH v4 0/4] Test oidmap Jeff King
2019-06-19 22:09   ` Jeff King
2019-06-19 22:25     ` Christian Couder
2019-06-20  7:39   ` [PATCH 0/17] drop non-object_id hashing Jeff King
2019-06-20  7:40     ` [PATCH 01/17] describe: fix accidental oid/hash type-punning Jeff King
2019-06-20 16:32       ` Junio C Hamano
2019-06-20 18:25         ` Jeff King
2019-06-20  7:40     ` [PATCH 02/17] upload-pack: rename a "sha1" variable to "oid" Jeff King
2019-06-20  7:40     ` [PATCH 03/17] pack-bitmap-write: convert some helpers to use object_id Jeff King
2019-06-20  7:41     ` [PATCH 04/17] pack-objects: convert packlist_find() " Jeff King
2019-06-20  7:41     ` [PATCH 05/17] pack-objects: convert locate_object_entry_hash() to object_id Jeff King
2019-06-20  7:41     ` [PATCH 06/17] object: convert lookup_unknown_object() to use object_id Jeff King
2019-06-20  7:41     ` [PATCH 07/17] object: convert lookup_object() " Jeff King
2019-06-20  7:41     ` [PATCH 08/17] object: convert internal hash_obj() to object_id Jeff King
2019-06-20  7:41     ` [PATCH 09/17] object: convert create_object() to use object_id Jeff King
2019-06-20 14:21       ` Ramsay Jones
2019-06-20 18:23         ` Jeff King
2019-06-20  7:41     ` [PATCH 10/17] khash: drop broken oid_map typedef Jeff King
2019-06-20  7:41     ` [PATCH 11/17] khash: rename kh_oid_t to kh_oid_set Jeff King
2019-06-20  7:41     ` [PATCH 12/17] delta-islands: convert island_marks khash to use oids Jeff King
2019-06-20 17:38       ` Jonathan Tan
2019-06-20 18:29         ` Jeff King
2019-06-20  7:41     ` Jeff King [this message]
2019-06-20  7:41     ` [PATCH 14/17] khash: drop sha1-specific map types Jeff King
2019-06-20  7:41     ` [PATCH 15/17] khash: rename oid helper functions Jeff King
2019-06-20 17:44       ` Junio C Hamano
2019-06-20 18:27         ` Jeff King
2019-06-23 16:00           ` René Scharfe
2019-06-23 22:46             ` Jeff King
2019-06-20  7:41     ` [PATCH 16/17] hash.h: move object_id definition from cache.h Jeff King
2019-06-20 17:41       ` Junio C Hamano
2019-06-20  7:41     ` [PATCH 17/17] hashmap: convert sha1hash() to oidhash() Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190620074135.GM3713@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=avarab@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=szeder.dev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.