All of lore.kernel.org
 help / color / mirror / Atom feed
From: "AreaZR via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Eric Sunshine <sunshine@sunshineco.com>,
	AreaZR <gfunni234@gmail.com>,
	Seija Kijin <doremylover123@gmail.com>
Subject: [PATCH v2] git: replace strbuf_addstr with strbuf_addch for all strings of length 2
Date: Wed, 18 Dec 2024 00:31:37 +0000	[thread overview]
Message-ID: <pull.1436.v2.git.git.1734481897905.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1436.git.git.1673992498572.gitgitgadget@gmail.com>

From: Seija Kijin <doremylover123@gmail.com>

This helps reduce overhead of calculating the length

Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
    git: replace strbuf_addstr with strbuf_addch for all strings of length 2
    
    This helps reduce overhead of calculating the length
    
    Signed-off-by: Seija Kijin doremylover123@gmail.com

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1436%2FAreaZR%2Fstrbuf-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1436/AreaZR/strbuf-v2
Pull-Request: https://github.com/git/git/pull/1436

Range-diff vs v1:

 1:  8eed09a9df1 ! 1:  22c37ed6677 git: replace strbuf_addstr with strbuf_addch for all strings of length 2
     @@ Commit message
          Signed-off-by: Seija Kijin <doremylover123@gmail.com>
      
       ## bisect.c ##
     -@@ bisect.c: static int register_ref(const char *refname, const struct object_id *oid,
     +@@ bisect.c: static int register_ref(const char *refname, const char *referent UNUSED, const
       {
       	struct strbuf good_prefix = STRBUF_INIT;
       	strbuf_addstr(&good_prefix, term_good);
     @@ bisect.c: static int register_ref(const char *refname, const struct object_id *o
      +	strbuf_addch(&good_prefix, '-');
       
       	if (!strcmp(refname, term_bad)) {
     - 		current_bad_oid = xmalloc(sizeof(*current_bad_oid));
     + 		free(current_bad_oid);
      
       ## builtin/am.c ##
      @@ builtin/am.c: static void write_author_script(const struct am_state *state)
     @@ protocol-caps.c: static void send_info(struct repository *r, struct packet_write
       				strbuf_addf(&send_buffer, " %lu", object_size);
       			}
      
     - ## reftable/readwrite_test.c ##
     -@@ reftable/readwrite_test.c: static void test_table_read_write_seek(int index, int hash_id)
     - 	}
     - 
     - 	strbuf_addstr(&pastLast, names[N - 1]);
     --	strbuf_addstr(&pastLast, "/");
     -+	strbuf_addch(&pastLast, '/');
     - 
     - 	err = reftable_reader_seek_ref(&rd, &it, pastLast.buf);
     - 	if (err == 0) {
     -
     - ## reftable/refname.c ##
     -@@ reftable/refname.c: int modification_validate(struct modification *mod)
     - 			goto done;
     - 		strbuf_reset(&slashed);
     - 		strbuf_addstr(&slashed, mod->add[i]);
     --		strbuf_addstr(&slashed, "/");
     -+		strbuf_addch(&slashed, '/');
     - 
     - 		err = modification_has_ref_with_prefix(mod, slashed.buf);
     - 		if (err == 0) {
     -
     - ## reftable/stack.c ##
     -@@ reftable/stack.c: static void stack_filename(struct strbuf *dest, struct reftable_stack *st,
     - {
     - 	strbuf_reset(dest);
     - 	strbuf_addstr(dest, st->reftable_dir);
     --	strbuf_addstr(dest, "/");
     -+	strbuf_addch(dest, '/');
     - 	strbuf_addstr(dest, name);
     - }
     - 
     -@@ reftable/stack.c: int reftable_addition_commit(struct reftable_addition *add)
     - 
     - 	for (i = 0; i < add->stack->merged->stack_len; i++) {
     - 		strbuf_addstr(&table_list, add->stack->readers[i]->name);
     --		strbuf_addstr(&table_list, "\n");
     -+		strbuf_addch(&table_list, '\n');
     - 	}
     - 	for (i = 0; i < add->new_tables_len; i++) {
     - 		strbuf_addstr(&table_list, add->new_tables[i]);
     --		strbuf_addstr(&table_list, "\n");
     -+		strbuf_addch(&table_list, '\n');
     - 	}
     - 
     - 	err = write(add->lock_file_fd, table_list.buf, table_list.len);
     -@@ reftable/stack.c: static int stack_compact_range(struct reftable_stack *st, int first, int last,
     - 
     - 	for (i = 0; i < first; i++) {
     - 		strbuf_addstr(&ref_list_contents, st->readers[i]->name);
     --		strbuf_addstr(&ref_list_contents, "\n");
     -+		strbuf_addch(&ref_list_contents, '\n');
     - 	}
     - 	if (!is_empty_table) {
     - 		strbuf_addbuf(&ref_list_contents, &new_table_name);
     --		strbuf_addstr(&ref_list_contents, "\n");
     -+		strbuf_addch(&ref_list_contents, '\n');
     - 	}
     - 	for (i = last + 1; i < st->merged->stack_len; i++) {
     - 		strbuf_addstr(&ref_list_contents, st->readers[i]->name);
     --		strbuf_addstr(&ref_list_contents, "\n");
     -+		strbuf_addch(&ref_list_contents, '\n');
     - 	}
     - 
     - 	err = write(lock_file_fd, ref_list_contents.buf, ref_list_contents.len);
     -
     - ## reftable/stack_test.c ##
     -@@ reftable/stack_test.c: static void test_reftable_stack_add_one(void)
     - 
     - 	strbuf_reset(&scratch);
     - 	strbuf_addstr(&scratch, dir);
     --	strbuf_addstr(&scratch, "/");
     -+	strbuf_addch(&scratch, '/');
     - 	/* do not try at home; not an external API for reftable. */
     - 	strbuf_addstr(&scratch, st->readers[0]->name);
     - 	err = stat(scratch.buf, &stat_result);
     -
     - ## reftable/writer.c ##
     -@@ reftable/writer.c: int reftable_writer_add_log(struct reftable_writer *w,
     - 			err = REFTABLE_API_ERROR;
     - 			goto done;
     - 		}
     --		strbuf_addstr(&cleaned_message, "\n");
     -+		strbuf_addch(&cleaned_message, '\n');
     - 		log->value.update.message = cleaned_message.buf;
     - 	}
     - 
     -
     - ## sequencer.c ##
     -@@ sequencer.c: static int do_pick_commit(struct repository *r,
     - 		} else {
     - 			strbuf_addstr(&msgbuf, "Revert \"");
     - 			strbuf_addstr(&msgbuf, msg.subject);
     --			strbuf_addstr(&msgbuf, "\"");
     -+			strbuf_addch(&msgbuf, '\"');
     - 		}
     - 		strbuf_addstr(&msgbuf, "\n\nThis reverts commit ");
     - 		refer_to_commit(opts, &msgbuf, commit);
     -
       ## setup.c ##
      @@ setup.c: static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir,
       				return GIT_DIR_DISALLOWED_BARE;


 bisect.c                | 2 +-
 builtin/am.c            | 6 ++----
 builtin/blame.c         | 8 +++-----
 builtin/ls-tree.c       | 2 +-
 diff.c                  | 2 +-
 log-tree.c              | 2 +-
 merge-ort.c             | 3 +--
 path.c                  | 2 +-
 protocol-caps.c         | 2 +-
 setup.c                 | 2 +-
 trace2/tr2_tgt_normal.c | 2 +-
 11 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/bisect.c b/bisect.c
index d71c4e4b44b..94bb53c9bf6 100644
--- a/bisect.c
+++ b/bisect.c
@@ -454,7 +454,7 @@ static int register_ref(const char *refname, const char *referent UNUSED, const
 {
 	struct strbuf good_prefix = STRBUF_INIT;
 	strbuf_addstr(&good_prefix, term_good);
-	strbuf_addstr(&good_prefix, "-");
+	strbuf_addch(&good_prefix, '-');
 
 	if (!strcmp(refname, term_bad)) {
 		free(current_bad_oid);
diff --git a/builtin/am.c b/builtin/am.c
index bfa95147cf4..6cb9fd4f45f 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -341,13 +341,11 @@ static void write_author_script(const struct am_state *state)
 
 	strbuf_addstr(&sb, "GIT_AUTHOR_NAME=");
 	sq_quote_buf(&sb, state->author_name);
-	strbuf_addch(&sb, '\n');
 
-	strbuf_addstr(&sb, "GIT_AUTHOR_EMAIL=");
+	strbuf_addstr(&sb, "\nGIT_AUTHOR_EMAIL=");
 	sq_quote_buf(&sb, state->author_email);
-	strbuf_addch(&sb, '\n');
 
-	strbuf_addstr(&sb, "GIT_AUTHOR_DATE=");
+	strbuf_addstr(&sb, "\nGIT_AUTHOR_DATE=");
 	sq_quote_buf(&sb, state->author_date);
 	strbuf_addch(&sb, '\n');
 
diff --git a/builtin/blame.c b/builtin/blame.c
index 6a7bb3b0724..c1ee2585ee8 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -148,11 +148,9 @@ static void get_ac_line(const char *inbuf, const char *what,
 
 	if (split_ident_line(&ident, tmp, len)) {
 	error_out:
-		/* Ugh */
-		tmp = "(unknown)";
-		strbuf_addstr(name, tmp);
-		strbuf_addstr(mail, tmp);
-		strbuf_addstr(tz, tmp);
+		strbuf_addstr(name, "(unknown)");
+		strbuf_addstr(mail, "(unknown)");
+		strbuf_addstr(tz, "(unknown)");
 		*time = 0;
 		return;
 	}
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 8542b5d53e4..605ddb5a719 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -37,7 +37,7 @@ static void expand_objectsize(struct strbuf *line, const struct object_id *oid,
 	} else if (padded) {
 		strbuf_addf(line, "%7s", "-");
 	} else {
-		strbuf_addstr(line, "-");
+		strbuf_addch(line, '-');
 	}
 }
 
diff --git a/diff.c b/diff.c
index 266ddf18e73..61434c6cb45 100644
--- a/diff.c
+++ b/diff.c
@@ -1763,7 +1763,7 @@ static void add_line_count(struct strbuf *out, int count)
 		strbuf_addstr(out, "0,0");
 		break;
 	case 1:
-		strbuf_addstr(out, "1");
+		strbuf_addch(out, '1');
 		break;
 	default:
 		strbuf_addf(out, "1,%d", count);
diff --git a/log-tree.c b/log-tree.c
index 83cc4b1cfb7..d0dc065e4f3 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -452,7 +452,7 @@ void fmt_output_subject(struct strbuf *filename,
 
 		strbuf_addf(&temp, "v%s", info->reroll_count);
 		format_sanitized_subject(filename, temp.buf, temp.len);
-		strbuf_addstr(filename, "-");
+		strbuf_addch(filename, '-');
 		strbuf_release(&temp);
 	}
 	strbuf_addf(filename, "%04d-%s", nr, subject);
diff --git a/merge-ort.c b/merge-ort.c
index 11029c10be3..8bda8170863 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -827,8 +827,7 @@ static void path_msg(struct merge_options *opt,
 
 	va_start(ap, fmt);
 	if (opt->priv->call_depth) {
-		strbuf_addchars(dest, ' ', 2);
-		strbuf_addstr(dest, "From inner merge:");
+		strbuf_addstr(dest, "  From inner merge:");
 		strbuf_addchars(dest, ' ', opt->priv->call_depth * 2);
 	}
 	strbuf_vaddf(dest, fmt, ap);
diff --git a/path.c b/path.c
index 4dcf3c8d40d..04085c164d0 100644
--- a/path.c
+++ b/path.c
@@ -982,7 +982,7 @@ const char *remove_leading_path(const char *in, const char *prefix)
 
 	strbuf_reset(&buf);
 	if (!in[j])
-		strbuf_addstr(&buf, ".");
+		strbuf_addch(&buf, '.');
 	else
 		strbuf_addstr(&buf, in + j);
 	return buf.buf;
diff --git a/protocol-caps.c b/protocol-caps.c
index 855f279c2f7..a841a457bbd 100644
--- a/protocol-caps.c
+++ b/protocol-caps.c
@@ -65,7 +65,7 @@ static void send_info(struct repository *r, struct packet_writer *writer,
 
 		if (info->size) {
 			if (oid_object_info(r, &oid, &object_size) < 0) {
-				strbuf_addstr(&send_buffer, " ");
+				strbuf_addch(&send_buffer, ' ');
 			} else {
 				strbuf_addf(&send_buffer, " %lu", object_size);
 			}
diff --git a/setup.c b/setup.c
index 39ff48d9dc5..27535f9f9a2 100644
--- a/setup.c
+++ b/setup.c
@@ -1550,7 +1550,7 @@ static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir,
 				return GIT_DIR_DISALLOWED_BARE;
 			if (!ensure_valid_ownership(NULL, NULL, dir->buf, report))
 				return GIT_DIR_INVALID_OWNERSHIP;
-			strbuf_addstr(gitdir, ".");
+			strbuf_addch(gitdir, '.');
 			return GIT_DIR_BARE;
 		}
 
diff --git a/trace2/tr2_tgt_normal.c b/trace2/tr2_tgt_normal.c
index baef48aa698..8a05cf2109a 100644
--- a/trace2/tr2_tgt_normal.c
+++ b/trace2/tr2_tgt_normal.c
@@ -226,7 +226,7 @@ static void fn_child_start_fl(const char *file, int line,
 	if (cmd->dir) {
 		strbuf_addstr(&buf_payload, " cd ");
 		sq_quote_buf_pretty(&buf_payload, cmd->dir);
-		strbuf_addstr(&buf_payload, ";");
+		strbuf_addch(&buf_payload, ';');
 	}
 
 	/*

base-commit: 2ccc89b0c16c51561da90d21cfbb4b58cc877bf6
-- 
gitgitgadget

  parent reply	other threads:[~2024-12-18  0:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-17 21:54 [PATCH] git: replace strbuf_addstr with strbuf_addch for all strings of length 2 Rose via GitGitGadget
2023-01-18 16:04 ` Junio C Hamano
2023-01-18 18:53   ` Eric Sunshine
2024-12-18  0:31 ` AreaZR via GitGitGadget [this message]
2024-12-18  2:54   ` [PATCH v3] " AreaZR via GitGitGadget
2024-12-18  3:06     ` [PATCH v4] " AreaZR via GitGitGadget

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=pull.1436.v2.git.git.1734481897905.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=doremylover123@gmail.com \
    --cc=gfunni234@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=sunshine@sunshineco.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.