trace2: add dots directly to strbuf in perf_fmt_prepare()
The initialization function of the Trace2 performance format target sets aside a stash of dots for indenting output. Get rid of it and use strbuf_addchars() to provide dots on demand instead. This shortens the code, gets rid of a small heap allocation and is a bit more efficient. Signed-off-by: René Scharfe <l.s.r@web.de> Acked-by: Jeff King <peff@peff.net> Acked-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
da72936f54
commit
5c34d2f03e
@ -26,12 +26,9 @@ static int tr2env_perf_be_brief;
|
|||||||
#define TR2FMT_PERF_REPO_WIDTH (3)
|
#define TR2FMT_PERF_REPO_WIDTH (3)
|
||||||
#define TR2FMT_PERF_CATEGORY_WIDTH (12)
|
#define TR2FMT_PERF_CATEGORY_WIDTH (12)
|
||||||
|
|
||||||
#define TR2_DOTS_BUFFER_SIZE (100)
|
|
||||||
#define TR2_INDENT (2)
|
#define TR2_INDENT (2)
|
||||||
#define TR2_INDENT_LENGTH(ctx) (((ctx)->nr_open_regions - 1) * TR2_INDENT)
|
#define TR2_INDENT_LENGTH(ctx) (((ctx)->nr_open_regions - 1) * TR2_INDENT)
|
||||||
|
|
||||||
static struct strbuf dots = STRBUF_INIT;
|
|
||||||
|
|
||||||
static int fn_init(void)
|
static int fn_init(void)
|
||||||
{
|
{
|
||||||
int want = tr2_dst_trace_want(&tr2dst_perf);
|
int want = tr2_dst_trace_want(&tr2dst_perf);
|
||||||
@ -41,8 +38,6 @@ static int fn_init(void)
|
|||||||
if (!want)
|
if (!want)
|
||||||
return want;
|
return want;
|
||||||
|
|
||||||
strbuf_addchars(&dots, '.', TR2_DOTS_BUFFER_SIZE);
|
|
||||||
|
|
||||||
brief = tr2_sysenv_get(TR2_SYSENV_PERF_BRIEF);
|
brief = tr2_sysenv_get(TR2_SYSENV_PERF_BRIEF);
|
||||||
if (brief && *brief &&
|
if (brief && *brief &&
|
||||||
((want_brief = git_parse_maybe_bool(brief)) != -1))
|
((want_brief = git_parse_maybe_bool(brief)) != -1))
|
||||||
@ -54,8 +49,6 @@ static int fn_init(void)
|
|||||||
static void fn_term(void)
|
static void fn_term(void)
|
||||||
{
|
{
|
||||||
tr2_dst_trace_disable(&tr2dst_perf);
|
tr2_dst_trace_disable(&tr2dst_perf);
|
||||||
|
|
||||||
strbuf_release(&dots);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -138,14 +131,8 @@ static void perf_fmt_prepare(const char *event_name,
|
|||||||
strbuf_addf(buf, "%-*.*s | ", TR2FMT_PERF_CATEGORY_WIDTH,
|
strbuf_addf(buf, "%-*.*s | ", TR2FMT_PERF_CATEGORY_WIDTH,
|
||||||
TR2FMT_PERF_CATEGORY_WIDTH, (category ? category : ""));
|
TR2FMT_PERF_CATEGORY_WIDTH, (category ? category : ""));
|
||||||
|
|
||||||
if (ctx->nr_open_regions > 0) {
|
if (ctx->nr_open_regions > 0)
|
||||||
int len_indent = TR2_INDENT_LENGTH(ctx);
|
strbuf_addchars(buf, '.', TR2_INDENT_LENGTH(ctx));
|
||||||
while (len_indent > dots.len) {
|
|
||||||
strbuf_addbuf(buf, &dots);
|
|
||||||
len_indent -= dots.len;
|
|
||||||
}
|
|
||||||
strbuf_addf(buf, "%.*s", len_indent, dots.buf);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void perf_io_write_fl(const char *file, int line, const char *event_name,
|
static void perf_io_write_fl(const char *file, int line, const char *event_name,
|
||||||
|
Loading…
Reference in New Issue
Block a user