[16/17] hash.h: move object_id definition from cache.h
diff mbox series

Message ID 20190620074145.GP3713@sigill.intra.peff.net
State New
Headers show
Series
  • drop non-object_id hashing
Related show

Commit Message

Jeff King June 20, 2019, 7:41 a.m. UTC
Our hashmap.h helpfully defines a sha1hash() function. But it cannot
define a similar oidhash() without including all of cache.h, which
itself wants to include hashmap.h! Let's break this circular dependency
by moving the definition to hash.h, along with the remaining RAWSZ
macros, etc. That will put them with the existing git_hash_algo
definition.

One alternative would be to move oidhash() into cache.h, but it's
already quite bloated. We're better off moving things out than in.

Signed-off-by: Jeff King <peff@peff.net>
---
 cache.h | 24 ------------------------
 hash.h  | 24 ++++++++++++++++++++++++
 2 files changed, 24 insertions(+), 24 deletions(-)

Comments

Junio C Hamano June 20, 2019, 5:41 p.m. UTC | #1
Jeff King <peff@peff.net> writes:

> Our hashmap.h helpfully defines a sha1hash() function. But it cannot
> define a similar oidhash() without including all of cache.h, which
> itself wants to include hashmap.h! Let's break this circular dependency
> by moving the definition to hash.h, along with the remaining RAWSZ
> macros, etc. That will put them with the existing git_hash_algo
> definition.
>
> One alternative would be to move oidhash() into cache.h, but it's
> already quite bloated. We're better off moving things out than in.

Makes sense.

> Signed-off-by: Jeff King <peff@peff.net>
> ---
>  cache.h | 24 ------------------------
>  hash.h  | 24 ++++++++++++++++++++++++
>  2 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/cache.h b/cache.h
> index bf20337ef4..37e0b82064 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -43,30 +43,6 @@ int git_deflate_end_gently(git_zstream *);
>  int git_deflate(git_zstream *, int flush);
>  unsigned long git_deflate_bound(git_zstream *, unsigned long);
>  
> -/* The length in bytes and in hex digits of an object name (SHA-1 value). */
> -#define GIT_SHA1_RAWSZ 20
> -#define GIT_SHA1_HEXSZ (2 * GIT_SHA1_RAWSZ)
> -/* The block size of SHA-1. */
> -#define GIT_SHA1_BLKSZ 64
> -
> -/* The length in bytes and in hex digits of an object name (SHA-256 value). */
> -#define GIT_SHA256_RAWSZ 32
> -#define GIT_SHA256_HEXSZ (2 * GIT_SHA256_RAWSZ)
> -/* The block size of SHA-256. */
> -#define GIT_SHA256_BLKSZ 64
> -
> -/* The length in byte and in hex digits of the largest possible hash value. */
> -#define GIT_MAX_RAWSZ GIT_SHA256_RAWSZ
> -#define GIT_MAX_HEXSZ GIT_SHA256_HEXSZ
> -/* The largest possible block size for any supported hash. */
> -#define GIT_MAX_BLKSZ GIT_SHA256_BLKSZ
> -
> -struct object_id {
> -	unsigned char hash[GIT_MAX_RAWSZ];
> -};
> -
> -#define the_hash_algo the_repository->hash_algo
> -
>  #if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT)
>  #define DTYPE(de)	((de)->d_type)
>  #else
> diff --git a/hash.h b/hash.h
> index 661c9f2281..52a4f1a3f4 100644
> --- a/hash.h
> +++ b/hash.h
> @@ -139,4 +139,28 @@ static inline int hash_algo_by_ptr(const struct git_hash_algo *p)
>  	return p - hash_algos;
>  }
>  
> +/* The length in bytes and in hex digits of an object name (SHA-1 value). */
> +#define GIT_SHA1_RAWSZ 20
> +#define GIT_SHA1_HEXSZ (2 * GIT_SHA1_RAWSZ)
> +/* The block size of SHA-1. */
> +#define GIT_SHA1_BLKSZ 64
> +
> +/* The length in bytes and in hex digits of an object name (SHA-256 value). */
> +#define GIT_SHA256_RAWSZ 32
> +#define GIT_SHA256_HEXSZ (2 * GIT_SHA256_RAWSZ)
> +/* The block size of SHA-256. */
> +#define GIT_SHA256_BLKSZ 64
> +
> +/* The length in byte and in hex digits of the largest possible hash value. */
> +#define GIT_MAX_RAWSZ GIT_SHA256_RAWSZ
> +#define GIT_MAX_HEXSZ GIT_SHA256_HEXSZ
> +/* The largest possible block size for any supported hash. */
> +#define GIT_MAX_BLKSZ GIT_SHA256_BLKSZ
> +
> +struct object_id {
> +	unsigned char hash[GIT_MAX_RAWSZ];
> +};
> +
> +#define the_hash_algo the_repository->hash_algo
> +
>  #endif

Patch
diff mbox series

diff --git a/cache.h b/cache.h
index bf20337ef4..37e0b82064 100644
--- a/cache.h
+++ b/cache.h
@@ -43,30 +43,6 @@  int git_deflate_end_gently(git_zstream *);
 int git_deflate(git_zstream *, int flush);
 unsigned long git_deflate_bound(git_zstream *, unsigned long);
 
-/* The length in bytes and in hex digits of an object name (SHA-1 value). */
-#define GIT_SHA1_RAWSZ 20
-#define GIT_SHA1_HEXSZ (2 * GIT_SHA1_RAWSZ)
-/* The block size of SHA-1. */
-#define GIT_SHA1_BLKSZ 64
-
-/* The length in bytes and in hex digits of an object name (SHA-256 value). */
-#define GIT_SHA256_RAWSZ 32
-#define GIT_SHA256_HEXSZ (2 * GIT_SHA256_RAWSZ)
-/* The block size of SHA-256. */
-#define GIT_SHA256_BLKSZ 64
-
-/* The length in byte and in hex digits of the largest possible hash value. */
-#define GIT_MAX_RAWSZ GIT_SHA256_RAWSZ
-#define GIT_MAX_HEXSZ GIT_SHA256_HEXSZ
-/* The largest possible block size for any supported hash. */
-#define GIT_MAX_BLKSZ GIT_SHA256_BLKSZ
-
-struct object_id {
-	unsigned char hash[GIT_MAX_RAWSZ];
-};
-
-#define the_hash_algo the_repository->hash_algo
-
 #if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT)
 #define DTYPE(de)	((de)->d_type)
 #else
diff --git a/hash.h b/hash.h
index 661c9f2281..52a4f1a3f4 100644
--- a/hash.h
+++ b/hash.h
@@ -139,4 +139,28 @@  static inline int hash_algo_by_ptr(const struct git_hash_algo *p)
 	return p - hash_algos;
 }
 
+/* The length in bytes and in hex digits of an object name (SHA-1 value). */
+#define GIT_SHA1_RAWSZ 20
+#define GIT_SHA1_HEXSZ (2 * GIT_SHA1_RAWSZ)
+/* The block size of SHA-1. */
+#define GIT_SHA1_BLKSZ 64
+
+/* The length in bytes and in hex digits of an object name (SHA-256 value). */
+#define GIT_SHA256_RAWSZ 32
+#define GIT_SHA256_HEXSZ (2 * GIT_SHA256_RAWSZ)
+/* The block size of SHA-256. */
+#define GIT_SHA256_BLKSZ 64
+
+/* The length in byte and in hex digits of the largest possible hash value. */
+#define GIT_MAX_RAWSZ GIT_SHA256_RAWSZ
+#define GIT_MAX_HEXSZ GIT_SHA256_HEXSZ
+/* The largest possible block size for any supported hash. */
+#define GIT_MAX_BLKSZ GIT_SHA256_BLKSZ
+
+struct object_id {
+	unsigned char hash[GIT_MAX_RAWSZ];
+};
+
+#define the_hash_algo the_repository->hash_algo
+
 #endif