Git development
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Eric Sunshine <sunshine@sunshineco.com>,
	Derrick Stolee <stolee@gmail.com>,
	Stefan Beller <sbeller@google.com>,
	Brandon Williams <bmwill@google.com>,
	Jacob Keller <jacob.keller@gmail.com>
Subject: [PATCH v2 01/16] cache: update object ID functions for the_hash_algo
Date: Mon, 16 Jul 2018 01:27:53 +0000	[thread overview]
Message-ID: <20180716012808.961328-2-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20180716012808.961328-1-sandals@crustytoothpaste.net>

Most of our code has been converted to use struct object_id for object
IDs.  However, there are some places that still have not, and there are
a variety of places that compare equivalently sized hashes that are not
object IDs.  All of these hashes are artifacts of the internal hash
algorithm in use, and when we switch to NewHash for object storage, all
of these uses will also switch.

Update the hashcpy, hashclr, and hashcmp functions to use the_hash_algo,
since they are used in a variety of places to copy and manipulate
buffers that need to move data into or out of struct object_id.  This
has the effect of making the corresponding oid* functions use
the_hash_algo as well.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 cache.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cache.h b/cache.h
index d49092d94d..f00cc810bc 100644
--- a/cache.h
+++ b/cache.h
@@ -972,7 +972,7 @@ extern const struct object_id null_oid;
 
 static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2)
 {
-	return memcmp(sha1, sha2, GIT_SHA1_RAWSZ);
+	return memcmp(sha1, sha2, the_hash_algo->rawsz);
 }
 
 static inline int oidcmp(const struct object_id *oid1, const struct object_id *oid2)
@@ -992,7 +992,7 @@ static inline int is_null_oid(const struct object_id *oid)
 
 static inline void hashcpy(unsigned char *sha_dst, const unsigned char *sha_src)
 {
-	memcpy(sha_dst, sha_src, GIT_SHA1_RAWSZ);
+	memcpy(sha_dst, sha_src, the_hash_algo->rawsz);
 }
 
 static inline void oidcpy(struct object_id *dst, const struct object_id *src)
@@ -1009,7 +1009,7 @@ static inline struct object_id *oiddup(const struct object_id *src)
 
 static inline void hashclr(unsigned char *hash)
 {
-	memset(hash, 0, GIT_SHA1_RAWSZ);
+	memset(hash, 0, the_hash_algo->rawsz);
 }
 
 static inline void oidclr(struct object_id *oid)

  reply	other threads:[~2018-07-16  1:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-16  1:27 [PATCH v2 00/16] object_id part 14 brian m. carlson
2018-07-16  1:27 ` brian m. carlson [this message]
2018-07-16  1:27 ` [PATCH v2 02/16] tree-walk: replace hard-coded constants with the_hash_algo brian m. carlson
2018-07-16  1:27 ` [PATCH v2 03/16] hex: switch to using the_hash_algo brian m. carlson
2018-07-16  1:27 ` [PATCH v2 04/16] commit: express tree entry constants in terms of the_hash_algo brian m. carlson
2018-07-16  1:27 ` [PATCH v2 05/16] strbuf: allocate space with GIT_MAX_HEXSZ brian m. carlson
2018-07-16  1:27 ` [PATCH v2 06/16] sha1-name: use the_hash_algo when parsing object names brian m. carlson
2018-07-16  1:27 ` [PATCH v2 07/16] refs/files-backend: use the_hash_algo for writing refs brian m. carlson
2018-07-16  1:28 ` [PATCH v2 08/16] builtin/update-index: convert to using the_hash_algo brian m. carlson
2018-07-16  1:28 ` [PATCH v2 09/16] builtin/update-index: simplify parsing of cacheinfo brian m. carlson
2018-07-16  1:28 ` [PATCH v2 10/16] builtin/fmt-merge-msg: make hash independent brian m. carlson
2018-07-16  1:28 ` [PATCH v2 11/16] builtin/merge: switch to use the_hash_algo brian m. carlson
2018-07-16  1:28 ` [PATCH v2 12/16] builtin/merge-recursive: make hash independent brian m. carlson
2018-07-16  1:28 ` [PATCH v2 13/16] diff: switch GIT_SHA1_HEXSZ to use the_hash_algo brian m. carlson
2018-07-16  1:28 ` [PATCH v2 14/16] log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz brian m. carlson
2018-07-16  1:28 ` [PATCH v2 15/16] sha1-file: convert constants to uses of the_hash_algo brian m. carlson
2018-07-16  1:28 ` [PATCH v2 16/16] pretty: switch hard-coded constants to the_hash_algo brian m. carlson
2018-07-16 14:49 ` [PATCH v2 00/16] object_id part 14 Derrick Stolee
2018-07-16 15:21 ` Taylor Blau
2018-07-16 18:04   ` Stefan Beller

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=20180716012808.961328-2-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=bmwill@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.keller@gmail.com \
    --cc=sbeller@google.com \
    --cc=stolee@gmail.com \
    --cc=sunshine@sunshineco.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox