Message ID | 20250131-b4-pks-hash-context-direct-v1-0-67a6d3f49d6e@pks.im (mailing list archive) |
---|---|
Headers | show |
Series | hash: introduce generic wrappers to update hash contexts | expand |
Patrick Steinhardt <ps@pks.im> writes: > this patch series introduces a couple of generic wrappers to update hash > contexts. Instead of updating contexts via function pointers provided by > the hash algorithm, we now remember the hash algorithm in the context > itself. As a result, subsequent calls that update the hash don't need to > remember which algorithm they used: > > ``` > struct git_hash_ctx ctx; > struct object_id oid; > > git_hash_sha1_init(&ctx); > git_hash_update(&ctx, data); > git_hash_final_oid(&oid, &ctx); > ``` > > This was discussed in [1] and [2]. > > The series is built on top of master at 3b0d05c4a7 (The fifth batch, > 2025-01-29) with tb/unsafe-hashtcleanup at 04292c3796 (hash.h: drop > unsafe_ function variants, 2025-01-23) merged into it. > > Thanks! > > Patrick > > [1]: <Z3fhK1ACzJfVehM2@pks.im> > [2]: <Z4jyZCAwqOjZ-u2U@pks.im> Sounds sensible. It seems to textually interact with Karthik's attempt to pass down a hash_algo instance through the callchain in pack-write.c but I should be able to resolve the conflicts. Thanks.
On Fri, Jan 31, 2025 at 10:16:19AM -0800, Junio C Hamano wrote: > Patrick Steinhardt <ps@pks.im> writes: > > > this patch series introduces a couple of generic wrappers to update hash > > contexts. Instead of updating contexts via function pointers provided by > > the hash algorithm, we now remember the hash algorithm in the context > > itself. As a result, subsequent calls that update the hash don't need to > > remember which algorithm they used: > > > > ``` > > struct git_hash_ctx ctx; > > struct object_id oid; > > > > git_hash_sha1_init(&ctx); > > git_hash_update(&ctx, data); > > git_hash_final_oid(&oid, &ctx); > > ``` > > > > This was discussed in [1] and [2]. > > > > The series is built on top of master at 3b0d05c4a7 (The fifth batch, > > 2025-01-29) with tb/unsafe-hashtcleanup at 04292c3796 (hash.h: drop > > unsafe_ function variants, 2025-01-23) merged into it. > > > > Thanks! > > > > Patrick > > > > [1]: <Z3fhK1ACzJfVehM2@pks.im> > > [2]: <Z4jyZCAwqOjZ-u2U@pks.im> > > Sounds sensible. > > It seems to textually interact with Karthik's attempt to pass down a > hash_algo instance through the callchain in pack-write.c but I > should be able to resolve the conflicts. Ah, sorry, I didn't do a test merge with 'seen'. In any case, the conflict resolution looks good to me, thanks! Patrick