summaryrefslogtreecommitdiff
path: root/log-tree.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2014-08-26 10:23:54 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-08-26 17:34:26 (GMT)
commit2608c24940c80bf379937e4cefee75e2db79e008 (patch)
tree0ca188483b8a15b6753ca0b90ef80bc4860ed4e1 /log-tree.c
parent662174d299a2221016a8756d35d485b576ebcec2 (diff)
downloadgit-2608c24940c80bf379937e4cefee75e2db79e008.zip
git-2608c24940c80bf379937e4cefee75e2db79e008.tar.gz
git-2608c24940c80bf379937e4cefee75e2db79e008.tar.bz2
log-tree: make name_decoration hash static
In the previous commit, we made add_name_decoration global so that adders would not have to access the hash directly. We now make the hash itself static so that callers _have_ to add through our function, making sure that all additions go through a single point. To do this, we have to add one more accessor function: a way to lookup entries in the hash. Since the only caller doesn't actually look at the returned value, but rather only asks whether there is a decoration or not, we could provide only a boolean "has_name_decoration". That would allow us to make "struct name_decoration" local to log-tree, as well. However, it's unlikely to cause any maintainability harm making the actual data public, and this interface is more flexible if we need to look at decorations from other parts of the code in the future. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'log-tree.c')
-rw-r--r--log-tree.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/log-tree.c b/log-tree.c
index f7c6b03..2adf82b 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -12,7 +12,7 @@
#include "sequencer.h"
#include "line-log.h"
-struct decoration name_decoration = { "object names" };
+static struct decoration name_decoration = { "object names" };
static char decoration_colors[][COLOR_MAXLEN] = {
GIT_COLOR_RESET,
@@ -83,6 +83,11 @@ void add_name_decoration(enum decoration_type type, const char *name, struct obj
res->next = add_decoration(&name_decoration, obj, res);
}
+const struct name_decoration *get_name_decoration(const struct object *obj)
+{
+ return lookup_decoration(&name_decoration, obj);
+}
+
static int add_ref_decoration(const char *refname, const unsigned char *sha1, int flags, void *cb_data)
{
struct object *obj;
@@ -177,13 +182,13 @@ void format_decorations(struct strbuf *sb,
int use_color)
{
const char *prefix;
- struct name_decoration *decoration;
+ const struct name_decoration *decoration;
const char *color_commit =
diff_get_color(use_color, DIFF_COMMIT);
const char *color_reset =
decorate_get_color(use_color, DECORATION_NONE);
- decoration = lookup_decoration(&name_decoration, &commit->object);
+ decoration = get_name_decoration(&commit->object);
if (!decoration)
return;
prefix = " (";