aboutsummaryrefslogtreecommitdiffstats
path: root/trace2.c
diff options
context:
space:
mode:
authorJeff Hostetler <jeffhostetler@github.com>2024-03-07 15:22:28 +0000
committerJunio C Hamano <gitster@pobox.com>2024-03-07 10:24:34 -0800
commit520cf668149d43820a25869dc5f2eb7ff2ac5687 (patch)
tree51b619e4fb030ea1ef1f3b0c3a252b6268450f0b /trace2.c
parent0c1c3c861eacc7e27e627c80cc081ec7c00c743d (diff)
downloadgit-520cf668149d43820a25869dc5f2eb7ff2ac5687.tar.gz
trace2: avoid emitting 'def_param' set more than once
During nested alias expansion it is possible for "trace2_cmd_list_config()" and "trace2_cmd_list_env_vars()" to be called more than once. This causes a full set of 'def_param' events to be emitted each time. Let's avoid that. Add code to those two functions to only emit them once. Signed-off-by: Jeff Hostetler <jeffhostetler@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'trace2.c')
-rw-r--r--trace2.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/trace2.c b/trace2.c
index f1e268bd15..facce641ef 100644
--- a/trace2.c
+++ b/trace2.c
@@ -464,17 +464,29 @@ void trace2_cmd_alias_fl(const char *file, int line, const char *alias,
void trace2_cmd_list_config_fl(const char *file, int line)
{
+ static int emitted = 0;
+
if (!trace2_enabled)
return;
+ if (emitted)
+ return;
+ emitted = 1;
+
tr2_cfg_list_config_fl(file, line);
}
void trace2_cmd_list_env_vars_fl(const char *file, int line)
{
+ static int emitted = 0;
+
if (!trace2_enabled)
return;
+ if (emitted)
+ return;
+ emitted = 1;
+
tr2_list_env_vars_fl(file, line);
}