aboutsummaryrefslogtreecommitdiff
path: root/xdiff
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2026-01-26 10:48:52 +0000
committerJunio C Hamano <gitster@pobox.com>2026-01-26 08:38:29 -0800
commit5086213bd2f44fdc793fd8a081fd1c40a3267c44 (patch)
tree2988106692ec3e663c2ca84bc5d9680b17be2fa0 /xdiff
parentc27afcbfd0f440f410758432e2fe11a16fb2b360 (diff)
downloadgit-5086213bd2f44fdc793fd8a081fd1c40a3267c44.tar.xz
xdiff: remove unused data from xdlclass_t
Prior to commit 6d507bd41a (xdiff: delete fields ha, line, size in xdlclass_t in favor of an xrecord_t, 2025-09-26) xdlclass_t carried a copy of all the fields in xrecord_t. That commit embedded xrecord_t in xdlclass_t to make it easier to change the types of the fields in xrecord_t. However commit 6a26019c81 (xdiff: split xrecord_t.ha into line_hash and minimal_perfect_hash, 2025-11-18) added the "minimal_perfect_hash" field to xrecord_t which is not used by xdlclass_t. To avoid wasting space stop copying the whole of xrecord_t and just copy the pointer and length that we need to intern the line. Together with the previous commit this effectively reverts 6d507bd41a. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'xdiff')
-rw-r--r--xdiff/xprepare.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/xdiff/xprepare.c b/xdiff/xprepare.c
index 08e5d3f4df..cd4fc405eb 100644
--- a/xdiff/xprepare.c
+++ b/xdiff/xprepare.c
@@ -36,7 +36,8 @@
typedef struct s_xdlclass {
uint64_t line_hash;
struct s_xdlclass *next;
- xrecord_t rec;
+ const uint8_t *ptr;
+ size_t size;
long idx;
long len1, len2;
} xdlclass_t;
@@ -101,7 +102,7 @@ static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
hi = XDL_HASHLONG(line_hash, cf->hbits);
for (rcrec = cf->rchash[hi]; rcrec; rcrec = rcrec->next)
if (rcrec->line_hash == line_hash &&
- xdl_recmatch((const char *)rcrec->rec.ptr, (long)rcrec->rec.size,
+ xdl_recmatch((const char *)rcrec->ptr, (long)rcrec->size,
(const char *)rec->ptr, (long)rec->size, cf->flags))
break;
@@ -115,7 +116,8 @@ static int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
return -1;
cf->rcrecs[rcrec->idx] = rcrec;
rcrec->line_hash = line_hash;
- rcrec->rec = *rec;
+ rcrec->ptr = rec->ptr;
+ rcrec->size = rec->size;
rcrec->len1 = rcrec->len2 = 0;
rcrec->next = cf->rchash[hi];
cf->rchash[hi] = rcrec;