From: René Scharfe Date: Thu, 4 Sep 2008 21:38:08 +0000 (+0200) Subject: log: add load_ref_decorations() X-Git-Tag: v1.6.1-rc1~231^2~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5e9bf11c1a3052f01f86d7eb28ae4c5b8d9c7495;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/builtin-log.c b/builtin-log.c index 1d3c5cbf5..0f164620b 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);