read-cache: use size_t for {base,df}_name_compare()
Support names of any length in base_name_compare() and df_name_compare() by using size_t for their length parameters. They pass the length on to memcmp(3), which also takes it as a size_t. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe committed
Feb 5, 2023 at 11:36 UTC
1b4a38d741a4f256c76ae5bffd3c8a52e05927b2
2 files changed
+11
-8
cache.h
+4
-2
@@ -1609,8 +1609,10 @@ int repo_interpret_branch_name(struct repository *r,
1609
1610
int validate_headref(const char *ref);
1611
1612
-int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
1613
-int df_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
1612
+int base_name_compare(const char *name1, size_t len1, int mode1,
1613
+ const char *name2, size_t len2, int mode2);
1614
+int df_name_compare(const char *name1, size_t len1, int mode1,
1615
+ const char *name2, size_t len2, int mode2);
1616
int name_compare(const char *name1, size_t len1, const char *name2, size_t len2);
1617
int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2);
1618
read-cache.c
+7
-6
@@ -488,11 +488,11 @@ int ie_modified(struct index_state *istate,
488
return 0;
489
}
490
491
-int base_name_compare(const char *name1, int len1, int mode1,
492
- const char *name2, int len2, int mode2)
491
+int base_name_compare(const char *name1, size_t len1, int mode1,
492
+ const char *name2, size_t len2, int mode2)
493
{
494
unsigned char c1, c2;
495
- int len = len1 < len2 ? len1 : len2;
495
+ size_t len = len1 < len2 ? len1 : len2;
496
int cmp;
497
498
cmp = memcmp(name1, name2, len);
@@ -517,11 +517,12 @@ int base_name_compare(const char *name1, int len1, int mode1,
517
* This is used by routines that want to traverse the git namespace
518
* but then handle conflicting entries together when possible.
519
*/
520
-int df_name_compare(const char *name1, int len1, int mode1,
521
- const char *name2, int len2, int mode2)
520
+int df_name_compare(const char *name1, size_t len1, int mode1,
521
+ const char *name2, size_t len2, int mode2)
522
{
523
- int len = len1 < len2 ? len1 : len2, cmp;
523
unsigned char c1, c2;
524
+ size_t len = len1 < len2 ? len1 : len2;
525
+ int cmp;
526
527
cmp = memcmp(name1, name2, len);
528
if (cmp)