Volume XXII, number 280Wednesday, October 7, 2026Latest message 2 hours ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

patchsplit-index: stop using the_repository and the_hash_algo

2 messages between Mar 19, 2026 and Mar 19, 2026, from René Scharfe, Junio C Hamano.

Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.

René ScharfeMar 19, 2026, 18:48 UTC on lore
Reference the hash algorithm of the passed-in index throughout the code.
Signed-off-by: René Scharfe <l.s.r@web.de>
---
Low-hanging fruit..
 split-index.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
Show changes to split-index.c +7 −6
diff --git a/split-index.c b/split-index.c
index 4c74c4adda..6ba210738c 100644
--- a/split-index.c
+++ b/split-index.c
@@ -1,4 +1,3 @@
-#define USE_THE_REPOSITORY_VARIABLE
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
 #include "git-compat-util.h"
@@ -6,6 +5,7 @@
 #include "hash.h"
 #include "mem-pool.h"
 #include "read-cache-ll.h"
+#include "repository.h"
 #include "split-index.h"
 #include "strbuf.h"
 #include "ewah/ewok.h"
@@ -25,16 +25,17 @@ struct split_index *init_split_index(struct index_state *istate)
 int read_link_extension(struct index_state *istate,
 			 const void *data_, unsigned long sz)
 {
+	const struct git_hash_algo *algo = istate->repo->hash_algo;
 	const unsigned char *data = data_;
 	struct split_index *si;
 	int ret;
 
-	if (sz < the_hash_algo->rawsz)
+	if (sz < algo->rawsz)
 		return error("corrupt link extension (too short)");
 	si = init_split_index(istate);
-	oidread(&si->base_oid, data, the_repository->hash_algo);
-	data += the_hash_algo->rawsz;
-	sz -= the_hash_algo->rawsz;
+	oidread(&si->base_oid, data, algo);
+	data += algo->rawsz;
+	sz -= algo->rawsz;
 	if (!sz)
 		return 0;
 	si->delete_bitmap = ewah_new();
@@ -56,7 +57,7 @@ int write_link_extension(struct strbuf *sb,
 			 struct index_state *istate)
 {
 	struct split_index *si = istate->split_index;
-	strbuf_add(sb, si->base_oid.hash, the_hash_algo->rawsz);
+	strbuf_add(sb, si->base_oid.hash, istate->repo->hash_algo->rawsz);
 	if (!si->delete_bitmap && !si->replace_bitmap)
 		return 0;
 	ewah_serialize_strbuf(si->delete_bitmap, sb);
-- 
2.53.0
Junio C HamanoMar 19, 2026, 19:01 UTC in reply to René Scharfe on lore

Re: [PATCH] split-index: stop using the_repository and the_hash_algo

René Scharfe <l.s.r@web.de> writes:
Show 5 quoted lines
> Reference the hash algorithm of the passed-in index throughout the code.
>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> Low-hanging fruit..
Indeed.
Show 52 quoted lines
>
>  split-index.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/split-index.c b/split-index.c
> index 4c74c4adda..6ba210738c 100644
> --- a/split-index.c
> +++ b/split-index.c
> @@ -1,4 +1,3 @@
> -#define USE_THE_REPOSITORY_VARIABLE
>  #define DISABLE_SIGN_COMPARE_WARNINGS
>  
>  #include "git-compat-util.h"
> @@ -6,6 +5,7 @@
>  #include "hash.h"
>  #include "mem-pool.h"
>  #include "read-cache-ll.h"
> +#include "repository.h"
>  #include "split-index.h"
>  #include "strbuf.h"
>  #include "ewah/ewok.h"
> @@ -25,16 +25,17 @@ struct split_index *init_split_index(struct index_state *istate)
>  int read_link_extension(struct index_state *istate,
>  			 const void *data_, unsigned long sz)
>  {
> +	const struct git_hash_algo *algo = istate->repo->hash_algo;
>  	const unsigned char *data = data_;
>  	struct split_index *si;
>  	int ret;
>  
> -	if (sz < the_hash_algo->rawsz)
> +	if (sz < algo->rawsz)
>  		return error("corrupt link extension (too short)");
>  	si = init_split_index(istate);
> -	oidread(&si->base_oid, data, the_repository->hash_algo);
> -	data += the_hash_algo->rawsz;
> -	sz -= the_hash_algo->rawsz;
> +	oidread(&si->base_oid, data, algo);
> +	data += algo->rawsz;
> +	sz -= algo->rawsz;
>  	if (!sz)
>  		return 0;
>  	si->delete_bitmap = ewah_new();
> @@ -56,7 +57,7 @@ int write_link_extension(struct strbuf *sb,
>  			 struct index_state *istate)
>  {
>  	struct split_index *si = istate->split_index;
> -	strbuf_add(sb, si->base_oid.hash, the_hash_algo->rawsz);
> +	strbuf_add(sb, si->base_oid.hash, istate->repo->hash_algo->rawsz);
>  	if (!si->delete_bitmap && !si->replace_bitmap)
>  		return 0;
>  	ewah_serialize_strbuf(si->delete_bitmap, sb);

Back to recent threads