diff mbox series

[4/4] commit.c: Fix type missmatch warings from msvc

Message ID 20241223110407.3308-5-soekkle@freenet.de (mailing list archive)
State Superseded
Headers show
Series Fixes typemissmatch warinigs from msvc | expand

Commit Message

Sören Krecker Dec. 23, 2024, 11:04 a.m. UTC
Fix compiler warings from msvc in date.c for value truncation from 64
bit to 32 bit integers.

Also switch from int to size_t for all variables with result of strlen()
which cannot become negative.

Signed-off-by: Sören Krecker <soekkle@freenet.de>
---
 commit.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Junio C Hamano Dec. 26, 2024, 9:38 p.m. UTC | #1
Sören Krecker <soekkle@freenet.de> writes:

> Fix compiler warings from msvc in date.c for value truncation from 64
> bit to 32 bit integers.
>
> Also switch from int to size_t for all variables with result of strlen()
> which cannot become negative.
>
> Signed-off-by: Sören Krecker <soekkle@freenet.de>
> ---
>  commit.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/commit.c b/commit.c
> index 35ab9bead5..3d363260f3 100644
> --- a/commit.c
> +++ b/commit.c
> @@ -466,8 +466,8 @@ int parse_commit_buffer(struct repository *r, struct commit *item, const void *b
>  	struct object_id parent;
>  	struct commit_list **pptr;
>  	struct commit_graft *graft;
> -	const int tree_entry_len = the_hash_algo->hexsz + 5;
> -	const int parent_entry_len = the_hash_algo->hexsz + 7;
> +	const size_t tree_entry_len = the_hash_algo->hexsz + 5;
> +	const size_t parent_entry_len = the_hash_algo->hexsz + 7;

We saw another change around hexsz in this series, but I seriously
doubt that it is sensible to define .hexsz member of git_hash_algo
as type size_t.  The whole _point_ of hash function is so that it
can be represented by a handful of bytes, so insisting size_t and
forcing us to suffer code churning like we see here is simply crazy.

Would it work equally well, if not better, if you instead fixed the
type of the .hexsz member (and its friends) to something more
reasonable, like "int"?
diff mbox series

Patch

diff --git a/commit.c b/commit.c
index 35ab9bead5..3d363260f3 100644
--- a/commit.c
+++ b/commit.c
@@ -466,8 +466,8 @@  int parse_commit_buffer(struct repository *r, struct commit *item, const void *b
 	struct object_id parent;
 	struct commit_list **pptr;
 	struct commit_graft *graft;
-	const int tree_entry_len = the_hash_algo->hexsz + 5;
-	const int parent_entry_len = the_hash_algo->hexsz + 7;
+	const size_t tree_entry_len = the_hash_algo->hexsz + 5;
+	const size_t parent_entry_len = the_hash_algo->hexsz + 7;
 	struct tree *tree;
 
 	if (item->object.parsed)
@@ -1114,10 +1114,10 @@  static const char *gpg_sig_headers[] = {
 
 int add_header_signature(struct strbuf *buf, struct strbuf *sig, const struct git_hash_algo *algo)
 {
-	int inspos, copypos;
+	ssize_t inspos, copypos;
 	const char *eoh;
 	const char *gpg_sig_header = gpg_sig_headers[hash_algo_by_ptr(algo)];
-	int gpg_sig_header_len = strlen(gpg_sig_header);
+	size_t gpg_sig_header_len = strlen(gpg_sig_header);
 
 	/* find the end of the header */
 	eoh = strstr(buf->buf, "\n\n");
@@ -1530,7 +1530,7 @@  int commit_tree(const char *msg, size_t msg_len, const struct object_id *tree,
 	return result;
 }
 
-static int find_invalid_utf8(const char *buf, int len)
+static int find_invalid_utf8(const char *buf, size_t len)
 {
 	int offset = 0;
 	static const unsigned int max_codepoint[] = {