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>maint
parent
1b23adadf3
commit
5e9bf11c1a
|
@ -50,6 +50,15 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in
|
||||||
return 0;
|
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,
|
static void cmd_log_init(int argc, const char **argv, const char *prefix,
|
||||||
struct rev_info *rev)
|
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++) {
|
for (i = 1; i < argc; i++) {
|
||||||
const char *arg = argv[i];
|
const char *arg = argv[i];
|
||||||
if (!strcmp(arg, "--decorate")) {
|
if (!strcmp(arg, "--decorate")) {
|
||||||
if (!decorate)
|
load_ref_decorations();
|
||||||
for_each_ref(add_ref_decoration, NULL);
|
|
||||||
decorate = 1;
|
decorate = 1;
|
||||||
} else
|
} else
|
||||||
die("unrecognized argument: %s", arg);
|
die("unrecognized argument: %s", arg);
|
||||||
|
|
Loading…
Reference in New Issue