summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2008-08-20 13:55:33 -0400
committerJunio C Hamano <gitster@pobox.com>2008-08-20 13:30:49 -0700
commit54988bdad7dc3f09e40752221c144bf470d73aa7 (patch)
treef0c09c0757f8cfe35aac8fb8065c21e321e92f38
parente276c26b4b65711c27e3ef37e732d41eeae42094 (diff)
downloadgit-54988bdad7dc3f09e40752221c144bf470d73aa7.tar.gz
decorate: allow const objects to be decorated
We don't actually modify the struct object, so there is no reason not to accept const versions (and this allows other callsites, like the next patch, to use the decoration machinery). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--decorate.c11
-rw-r--r--decorate.h6
2 files changed, 9 insertions, 8 deletions
diff --git a/decorate.c b/decorate.c
index d9668d2ef9..82d9e221ea 100644
--- a/decorate.c
+++ b/decorate.c
@@ -6,13 +6,13 @@
#include "object.h"
#include "decorate.h"
-static unsigned int hash_obj(struct object *obj, unsigned int n)
+static unsigned int hash_obj(const struct object *obj, unsigned int n)
{
unsigned int hash = *(unsigned int *)obj->sha1;
return hash % n;
}
-static void *insert_decoration(struct decoration *n, struct object *base, void *decoration)
+static void *insert_decoration(struct decoration *n, const struct object *base, void *decoration)
{
int size = n->size;
struct object_decoration *hash = n->hash;
@@ -44,7 +44,7 @@ static void grow_decoration(struct decoration *n)
n->nr = 0;
for (i = 0; i < old_size; i++) {
- struct object *base = old_hash[i].base;
+ const struct object *base = old_hash[i].base;
void *decoration = old_hash[i].decoration;
if (!base)
@@ -55,7 +55,8 @@ static void grow_decoration(struct decoration *n)
}
/* Add a decoration pointer, return any old one */
-void *add_decoration(struct decoration *n, struct object *obj, void *decoration)
+void *add_decoration(struct decoration *n, const struct object *obj,
+ void *decoration)
{
int nr = n->nr + 1;
@@ -65,7 +66,7 @@ void *add_decoration(struct decoration *n, struct object *obj, void *decoration)
}
/* Lookup a decoration pointer */
-void *lookup_decoration(struct decoration *n, struct object *obj)
+void *lookup_decoration(struct decoration *n, const struct object *obj)
{
int j;
diff --git a/decorate.h b/decorate.h
index 1fa4ad9beb..e7328044ff 100644
--- a/decorate.h
+++ b/decorate.h
@@ -2,7 +2,7 @@
#define DECORATE_H
struct object_decoration {
- struct object *base;
+ const struct object *base;
void *decoration;
};
@@ -12,7 +12,7 @@ struct decoration {
struct object_decoration *hash;
};
-extern void *add_decoration(struct decoration *n, struct object *obj, void *decoration);
-extern void *lookup_decoration(struct decoration *n, struct object *obj);
+extern void *add_decoration(struct decoration *n, const struct object *obj, void *decoration);
+extern void *lookup_decoration(struct decoration *n, const struct object *obj);
#endif