Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Aug 20, 2008
1 parent e276c26 commit 54988bd
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
11 changes: 6 additions & 5 deletions decorate.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand All @@ -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;

Expand All @@ -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;

Expand Down
6 changes: 3 additions & 3 deletions decorate.h
Expand Up @@ -2,7 +2,7 @@
#define DECORATE_H

struct object_decoration {
struct object *base;
const struct object *base;
void *decoration;
};

Expand All @@ -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

0 comments on commit 54988bd

Please sign in to comment.