diff options
author | Jeff Smith <whydoubt@gmail.com> | 2017-05-24 00:15:33 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-25 13:08:22 +0900 |
commit | f5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021 (patch) | |
tree | 1aaed09c905f168d3c02eda686df00f1f6b5be93 /builtin/blame.c | |
parent | dc076ae5d9fe8c2fbf238b265c1bc1f6f089fd16 (diff) | |
download | git-f5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021.tar.gz |
blame: move origin-related methods to libgit
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/blame.c')
-rw-r--r-- | builtin/blame.c | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/builtin/blame.c b/builtin/blame.c index 07b1a76833..2d6d834a6d 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -124,39 +124,6 @@ static void fill_origin_blob(struct diff_options *opt, *file = o->file; } -/* - * Origin is refcounted and usually we keep the blob contents to be - * reused. - */ -static inline struct blame_origin *blame_origin_incref(struct blame_origin *o) -{ - if (o) - o->refcnt++; - return o; -} - -static void blame_origin_decref(struct blame_origin *o) -{ - if (o && --o->refcnt <= 0) { - struct blame_origin *p, *l = NULL; - if (o->previous) - blame_origin_decref(o->previous); - free(o->file.ptr); - /* Should be present exactly once in commit chain */ - for (p = o->commit->util; p; l = p, p = p->next) { - if (p == o) { - if (l) - l->next = p->next; - else - o->commit->util = p->next; - free(o); - return; - } - } - die("internal error in blame_origin_decref"); - } -} - static void drop_origin_blob(struct blame_origin *o) { if (o->file.ptr) { @@ -316,45 +283,6 @@ static void queue_blames(struct blame_scoreboard *sb, struct blame_origin *porig } /* - * Given a commit and a path in it, create a new origin structure. - * The callers that add blame to the scoreboard should use - * get_origin() to obtain shared, refcounted copy instead of calling - * this function directly. - */ -static struct blame_origin *make_origin(struct commit *commit, const char *path) -{ - struct blame_origin *o; - FLEX_ALLOC_STR(o, path, path); - o->commit = commit; - o->refcnt = 1; - o->next = commit->util; - commit->util = o; - return o; -} - -/* - * Locate an existing origin or create a new one. - * This moves the origin to front position in the commit util list. - */ -static struct blame_origin *get_origin(struct commit *commit, const char *path) -{ - struct blame_origin *o, *l; - - for (o = commit->util, l = NULL; o; l = o, o = o->next) { - if (!strcmp(o->path, path)) { - /* bump to front */ - if (l) { - l->next = o->next; - o->next = commit->util; - commit->util = o; - } - return blame_origin_incref(o); - } - } - return make_origin(commit, path); -} - -/* * Fill the blob_sha1 field of an origin if it hasn't, so that later * call to fill_origin_blob() can use it to locate the data. blob_sha1 * for an origin is also used to pass the blame for the entire file to |