Changes in v3:
- use st_mult() instead of unsigned_mult_overflows(), as suggested by
Junio.
- split migration of SHA-1 and SHA-256 in different patches, as
suggested by Patrick.
- Revert removal of 'sha256' subcommand of test-tool due to existing
dependencies on it.
- Fix some formatting
CI for v3: https://github.com/spectre10/git/actions/runs/9216124753
Ghanshyam Thakkar (3):
strbuf: introduce strbuf_addstrings() to repeatedly add a string
t/: port helper/test-sha1.c to unit-tests/t-hash.c
t/: port helper/test-sha256.c to unit-tests/t-hash.c
Makefile | 1 +
builtin/submodule--helper.c | 4 +-
json-writer.c | 5 +--
strbuf.c | 9 +++++
strbuf.h | 5 +++
t/t0015-hash.sh | 56 --------------------------
t/unit-tests/t-hash.c | 79 +++++++++++++++++++++++++++++++++++++
7 files changed, 96 insertions(+), 63 deletions(-)
delete mode 100755 t/t0015-hash.sh
create mode 100644 t/unit-tests/t-hash.c
Range-diff against v2:
1: b8c4ab31c6 ! 1: cd831fabf5 strbuf: introduce strbuf_addstrings() to repeatedly add a string
@@
## Metadata ##
-Author: Achu Luma <ach.lumap@gmail.com>
+Author: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
## Commit message ##
strbuf: introduce strbuf_addstrings() to repeatedly add a string
@@ Commit message
strbuf_addstrings() would be similar for strings as strbuf_addch() and
strbuf_addchars() for characters.
+ Helped-by: Junio C Hamano <gitster@pobox.com>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
+ Mentored-by: Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
+ Co-authored-by: Achu Luma <ach.lumap@gmail.com>
Signed-off-by: Achu Luma <ach.lumap@gmail.com>
+ Signed-off-by: Ghanshyam Thakkar <shyamthakkar001@gmail.com>
## builtin/submodule--helper.c ##
@@ builtin/submodule--helper.c: static void module_list_active(struct module_list *list)
@@ strbuf.c: void strbuf_add(struct strbuf *sb, const void *data, size_t len)
+void strbuf_addstrings(struct strbuf *sb, const char *s, size_t n)
+{
-+ size_t len = strlen(s);
-+ if (unsigned_mult_overflows(len, n))
-+ die("you want to use way too much memory");
-+ strbuf_grow(sb, len * n);
-+ for (size_t i = 0; i < n; i++)
-+ strbuf_add(sb, s, len);
++ size_t len = strlen(s);
++
++ strbuf_grow(sb, st_mult(len, n));
++ for (size_t i = 0; i < n; i++)
++ strbuf_add(sb, s, len);
+}
+
void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2)
2: 20a7ff8e24 < -: ---------- Port helper/test-sha256.c and helper/test-sha1.c to unit-tests/t-hash.c
-: ---------- > 2: 2c4471ce37 t/: port helper/test-sha1.c to unit-tests/t-hash.c
-: ---------- > 3: 68dcf388d8 t/: port helper/test-sha256.c to unit-tests/t-hash.c