notes: convert for_each_note to struct object_id

Convert for_each_note and each of the callbacks to use struct object_id.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
brian m. carlson 2017-05-30 10:30:39 -07:00 committed by Junio C Hamano
parent 89c149f55b
commit 490bc83a01
4 changed files with 21 additions and 21 deletions

View File

@ -109,11 +109,11 @@ static void free_note_data(struct note_data *d)
strbuf_release(&d->buf);
}
static int list_each_note(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path,
static int list_each_note(const struct object_id *object_oid,
const struct object_id *note_oid, char *note_path,
void *cb_data)
{
printf("%s %s\n", sha1_to_hex(note_sha1), sha1_to_hex(object_sha1));
printf("%s %s\n", oid_to_hex(note_oid), oid_to_hex(object_oid));
return 0;
}

24
notes.c
View File

@ -610,7 +610,7 @@ redo:
if (path[path_len - 1] != '/')
path[path_len++] = '/';
path[path_len] = '\0';
ret = fn(l->key_oid.hash, l->val_oid.hash,
ret = fn(&l->key_oid, &l->val_oid,
path,
cb_data);
}
@ -627,7 +627,7 @@ redo:
l = (struct leaf_node *) CLR_PTR_TYPE(p);
construct_path_with_fanout(l->key_oid.hash, fanout,
path);
ret = fn(l->key_oid.hash, l->val_oid.hash, path,
ret = fn(&l->key_oid, &l->val_oid, path,
cb_data);
break;
}
@ -698,7 +698,7 @@ static int tree_write_stack_finish_subtree(struct tree_write_stack *tws)
static int write_each_note_helper(struct tree_write_stack *tws,
const char *path, unsigned int mode,
const unsigned char *sha1)
const struct object_id *oid)
{
size_t path_len = strlen(path);
unsigned int n = 0;
@ -728,7 +728,7 @@ static int write_each_note_helper(struct tree_write_stack *tws,
/* Finally add given entry to the current tree object */
write_tree_entry(&tws->buf, mode, path + 3 * n, path_len - (3 * n),
sha1);
oid->hash);
return 0;
}
@ -748,7 +748,7 @@ static int write_each_non_note_until(const char *note_path,
; /* do nothing, prefer note to non-note */
else {
ret = write_each_note_helper(d->root, n->path, n->mode,
n->oid.hash);
&n->oid);
if (ret)
return ret;
}
@ -758,8 +758,8 @@ static int write_each_non_note_until(const char *note_path,
return 0;
}
static int write_each_note(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path,
static int write_each_note(const struct object_id *object_oid,
const struct object_id *note_oid, char *note_path,
void *cb_data)
{
struct write_each_note_data *d =
@ -777,7 +777,7 @@ static int write_each_note(const unsigned char *object_sha1,
/* Weave non-note entries into note entries */
return write_each_non_note_until(note_path, d) ||
write_each_note_helper(d->root, note_path, mode, note_sha1);
write_each_note_helper(d->root, note_path, mode, note_oid);
}
struct note_delete_list {
@ -785,20 +785,20 @@ struct note_delete_list {
const unsigned char *sha1;
};
static int prune_notes_helper(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path,
static int prune_notes_helper(const struct object_id *object_oid,
const struct object_id *note_oid, char *note_path,
void *cb_data)
{
struct note_delete_list **l = (struct note_delete_list **) cb_data;
struct note_delete_list *n;
if (has_sha1_file(object_sha1))
if (has_object_file(object_oid))
return 0; /* nothing to do for this note */
/* failed to find object => prune this note */
n = (struct note_delete_list *) xmalloc(sizeof(*n));
n->next = *l;
n->sha1 = object_sha1;
n->sha1 = object_oid->hash;
*l = n;
return 0;
}

View File

@ -202,8 +202,8 @@ int copy_note(struct notes_tree *t,
* - copy_note()
* - free_notes()
*/
typedef int each_note_fn(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path,
typedef int each_note_fn(const struct object_id *object_oid,
const struct object_id *note_oid, char *note_path,
void *cb_data);
int for_each_note(struct notes_tree *t, int flags, each_note_fn fn,
void *cb_data);

View File

@ -99,8 +99,8 @@ static int parse_rev_note(const char *msg, struct rev_note *res)
return -1;
}
static int note2mark_cb(const unsigned char *object_sha1,
const unsigned char *note_sha1, char *note_path,
static int note2mark_cb(const struct object_id *object_oid,
const struct object_id *note_oid, char *note_path,
void *cb_data)
{
FILE *file = (FILE *)cb_data;
@ -109,14 +109,14 @@ static int note2mark_cb(const unsigned char *object_sha1,
enum object_type type;
struct rev_note note;
if (!(msg = read_sha1_file(note_sha1, &type, &msglen)) ||
if (!(msg = read_sha1_file(note_oid->hash, &type, &msglen)) ||
!msglen || type != OBJ_BLOB) {
free(msg);
return 1;
}
if (parse_rev_note(msg, &note))
return 2;
if (fprintf(file, ":%d %s\n", note.rev_nr, sha1_to_hex(object_sha1)) < 1)
if (fprintf(file, ":%d %s\n", note.rev_nr, oid_to_hex(object_oid)) < 1)
return 3;
return 0;
}