diff options
author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2008-09-04 23:38:08 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-09-04 17:01:41 -0700 |
commit | 5e9bf11c1a3052f01f86d7eb28ae4c5b8d9c7495 (patch) | |
tree | 39534d947378dcb2bfca8ce35c6c695a10dbc4ea /builtin-log.c | |
parent | 1b23adadf3adcf0074f61a498479a471964ab8c3 (diff) | |
download | git-5e9bf11c1a3052f01f86d7eb28ae4c5b8d9c7495.tar.gz |
log: add load_ref_decorations()
Move the loading of all ref names for decoration into its own function.
A static variable prevents loading twice, because it's quite expensive.
We can do it this way because we currently never unload decorations.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-log.c')
-rw-r--r-- | builtin-log.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/builtin-log.c b/builtin-log.c index 1d3c5cbf58..0f164620b9 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -50,6 +50,15 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in return 0; } +void load_ref_decorations(void) +{ + static int loaded; + if (!loaded) { + loaded = 1; + for_each_ref(add_ref_decoration, NULL); + } +} + static void cmd_log_init(int argc, const char **argv, const char *prefix, struct rev_info *rev) { @@ -80,8 +89,7 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix, for (i = 1; i < argc; i++) { const char *arg = argv[i]; if (!strcmp(arg, "--decorate")) { - if (!decorate) - for_each_ref(add_ref_decoration, NULL); + load_ref_decorations(); decorate = 1; } else die("unrecognized argument: %s", arg); |