summaryrefslogtreecommitdiff
path: root/builtin/blame.c
diff options
context:
space:
mode:
authorJeff Smith <whydoubt@gmail.com>2017-05-24 05:15:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-05-25 04:08:22 (GMT)
commitf5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021 (patch)
tree1aaed09c905f168d3c02eda686df00f1f6b5be93 /builtin/blame.c
parentdc076ae5d9fe8c2fbf238b265c1bc1f6f089fd16 (diff)
downloadgit-f5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021.zip
git-f5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021.tar.gz
git-f5dd754c36f7d9cc7dd4c3f1a22e0e4a557b2021.tar.bz2
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.c72
1 files changed, 0 insertions, 72 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index 07b1a76..2d6d834 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