diff options
Diffstat (limited to 'notes-cache.c')
-rw-r--r-- | notes-cache.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/notes-cache.c b/notes-cache.c index 29b4cede5f..2473314d68 100644 --- a/notes-cache.c +++ b/notes-cache.c @@ -1,9 +1,13 @@ #include "cache.h" #include "notes-cache.h" +#include "object-store.h" +#include "repository.h" #include "commit.h" #include "refs.h" -static int notes_cache_match_validity(const char *ref, const char *validity) +static int notes_cache_match_validity(struct repository *r, + const char *ref, + const char *validity) { struct object_id oid; struct commit *commit; @@ -11,10 +15,10 @@ static int notes_cache_match_validity(const char *ref, const char *validity) struct strbuf msg = STRBUF_INIT; int ret; - if (read_ref(ref, oid.hash) < 0) + if (read_ref(ref, &oid) < 0) return 0; - commit = lookup_commit_reference_gently(&oid, 1); + commit = lookup_commit_reference_gently(r, &oid, 1); if (!commit) return 0; @@ -28,8 +32,8 @@ static int notes_cache_match_validity(const char *ref, const char *validity) return ret; } -void notes_cache_init(struct notes_cache *c, const char *name, - const char *validity) +void notes_cache_init(struct repository *r, struct notes_cache *c, + const char *name, const char *validity) { struct strbuf ref = STRBUF_INIT; int flags = NOTES_INIT_WRITABLE; @@ -38,7 +42,7 @@ void notes_cache_init(struct notes_cache *c, const char *name, c->validity = xstrdup(validity); strbuf_addf(&ref, "refs/notes/%s", name); - if (!notes_cache_match_validity(ref.buf, validity)) + if (!notes_cache_match_validity(r, ref.buf, validity)) flags |= NOTES_INIT_EMPTY; init_notes(&c->tree, ref.buf, combine_notes_overwrite, flags); strbuf_release(&ref); @@ -54,12 +58,12 @@ int notes_cache_write(struct notes_cache *c) if (!c->tree.dirty) return 0; - if (write_notes_tree(&c->tree, tree_oid.hash)) + if (write_notes_tree(&c->tree, &tree_oid)) return -1; - if (commit_tree(c->validity, strlen(c->validity), tree_oid.hash, NULL, - commit_oid.hash, NULL, NULL) < 0) + if (commit_tree(c->validity, strlen(c->validity), &tree_oid, NULL, + &commit_oid, NULL, NULL) < 0) return -1; - if (update_ref("update notes cache", c->tree.update_ref, commit_oid.hash, + if (update_ref("update notes cache", c->tree.update_ref, &commit_oid, NULL, 0, UPDATE_REFS_QUIET_ON_ERR) < 0) return -1; @@ -77,7 +81,7 @@ char *notes_cache_get(struct notes_cache *c, struct object_id *key_oid, value_oid = get_note(&c->tree, key_oid); if (!value_oid) return NULL; - value = read_sha1_file(value_oid->hash, &type, &size); + value = read_object_file(value_oid, &type, &size); *outsize = size; return value; @@ -88,7 +92,7 @@ int notes_cache_put(struct notes_cache *c, struct object_id *key_oid, { struct object_id value_oid; - if (write_sha1_file(data, size, "blob", value_oid.hash) < 0) + if (write_object_file(data, size, "blob", &value_oid) < 0) return -1; return add_note(&c->tree, key_oid, &value_oid, NULL); } |