From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 4/4] rerere: modernize use of empty strbuf
Date: Thu, 24 Aug 2023 13:54:56 -0700 [thread overview]
Message-ID: <20230824205456.1231371-5-gitster@pobox.com> (raw)
In-Reply-To: <20230824205456.1231371-1-gitster@pobox.com>
Back when the code in the handle_conflict() helper function that
hashes the contents stored in the strbuf "one" and "two", including
its terminating NUL, was written, a freshly initialized strbuf had
NULL in its .buf member, so it was an error to say
update(one.buf, one.len + 1)
which was corrected by b4833a2c (rerere: Fix use of an empty
strbuf.buf, 2007-09-26).
But soon after that, b315c5c0 (strbuf change: be sure ->buf is never
ever NULL., 2007-09-27) introduced strbuf_slopbuf mechanism that
ensures that .buf member of a strbuf is *never* NULL. A freshly
initialized and empty strbuf uses a static piece of memory that has
NUL in it, with its .len member set to 0, so we can always safely
use from offset 0 of .buf[] array for (one.len + 1) bytes.
Simplify the code by essentially reverting the b4833a2c, whose fix
is no longer necessary in the modern world order.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
rerere.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/rerere.c b/rerere.c
index 6bc3c54d3b..69a61aac93 100644
--- a/rerere.c
+++ b/rerere.c
@@ -390,12 +390,8 @@ static int handle_conflict(struct strbuf *out, struct rerere_io *io,
strbuf_addbuf(out, &two);
rerere_strbuf_putconflict(out, '>', marker_size);
if (ctx) {
- the_hash_algo->update_fn(ctx, one.buf ?
- one.buf : "",
- one.len + 1);
- the_hash_algo->update_fn(ctx, two.buf ?
- two.buf : "",
- two.len + 1);
+ the_hash_algo->update_fn(ctx, one.buf, one.len + 1);
+ the_hash_algo->update_fn(ctx, two.buf, two.len + 1);
}
break;
} else if (hunk == RR_SIDE_1)
--
2.42.0-29-gcd9da15a85
prev parent reply other threads:[~2023-08-24 20:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-24 20:54 [PATCH 0/4] code clean-up for rerere Junio C Hamano
2023-08-24 20:54 ` [PATCH 1/4] rerere: simplify check_one_conflict() helper function Junio C Hamano
2023-08-24 20:54 ` [PATCH 2/4] rerere: fix comment on handle_file() helper Junio C Hamano
2023-08-24 20:54 ` [PATCH 3/4] rerere: try_merge() should use LL_MERGE_ERROR when it means an error Junio C Hamano
2023-08-24 20:54 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230824205456.1231371-5-gitster@pobox.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).