]> git.ipfire.org Git - thirdparty/git.git/blobdiff - blame.c
Merge branch 'ma/list-object-filter-opt-msgfix'
[thirdparty/git.git] / blame.c
diff --git a/blame.c b/blame.c
index 686845b2b43dffe35d9f9811b61c80a0e0536332..a5044fcfaa62644daa45103dd6ad17647bc6a811 100644 (file)
--- a/blame.c
+++ b/blame.c
@@ -435,7 +435,7 @@ static void get_fingerprint(struct fingerprint *result,
 
 static void free_fingerprint(struct fingerprint *f)
 {
-       hashmap_free(&f->map);
+       hashmap_clear(&f->map);
        free(f->entries);
 }
 
@@ -2670,7 +2670,7 @@ static struct commit *find_single_final(struct rev_info *revs,
                if (obj->flags & UNINTERESTING)
                        continue;
                obj = deref_tag(revs->repo, obj, NULL, 0);
-               if (obj->type != OBJ_COMMIT)
+               if (!obj || obj->type != OBJ_COMMIT)
                        die("Non commit %s?", revs->pending.objects[i].name);
                if (found)
                        die("More than one commit to dig from %s and %s?",
@@ -2701,7 +2701,7 @@ static struct commit *dwim_reverse_initial(struct rev_info *revs,
        /* Is that sole rev a committish? */
        obj = revs->pending.objects[0].item;
        obj = deref_tag(revs->repo, obj, NULL, 0);
-       if (obj->type != OBJ_COMMIT)
+       if (!obj || obj->type != OBJ_COMMIT)
                return NULL;
 
        /* Do we have HEAD? */
@@ -2737,7 +2737,7 @@ static struct commit *find_single_initial(struct rev_info *revs,
                if (!(obj->flags & UNINTERESTING))
                        continue;
                obj = deref_tag(revs->repo, obj, NULL, 0);
-               if (obj->type != OBJ_COMMIT)
+               if (!obj || obj->type != OBJ_COMMIT)
                        die("Non commit %s?", revs->pending.objects[i].name);
                if (found)
                        die("More than one commit to dig up from, %s and %s?",
@@ -2764,7 +2764,6 @@ void init_scoreboard(struct blame_scoreboard *sb)
 }
 
 void setup_scoreboard(struct blame_scoreboard *sb,
-                     const char *path,
                      struct blame_origin **orig)
 {
        const char *final_commit_name = NULL;
@@ -2803,7 +2802,7 @@ void setup_scoreboard(struct blame_scoreboard *sb,
                setup_work_tree();
                sb->final = fake_working_tree_commit(sb->repo,
                                                     &sb->revs->diffopt,
-                                                    path, sb->contents_from);
+                                                    sb->path, sb->contents_from);
                add_pending_object(sb->revs, &(sb->final->object), ":");
        }
 
@@ -2846,12 +2845,12 @@ void setup_scoreboard(struct blame_scoreboard *sb,
                sb->final_buf_size = o->file.size;
        }
        else {
-               o = get_origin(sb->final, path);
+               o = get_origin(sb->final, sb->path);
                if (fill_blob_sha1_and_mode(sb->repo, o))
-                       die(_("no such path %s in %s"), path, final_commit_name);
+                       die(_("no such path %s in %s"), sb->path, final_commit_name);
 
                if (sb->revs->diffopt.flags.allow_textconv &&
-                   textconv_object(sb->repo, path, o->mode, &o->blob_oid, 1, (char **) &sb->final_buf,
+                   textconv_object(sb->repo, sb->path, o->mode, &o->blob_oid, 1, (char **) &sb->final_buf,
                                    &sb->final_buf_size))
                        ;
                else
@@ -2861,7 +2860,7 @@ void setup_scoreboard(struct blame_scoreboard *sb,
                if (!sb->final_buf)
                        die(_("cannot read blob %s for path %s"),
                            oid_to_hex(&o->blob_oid),
-                           path);
+                           sb->path);
        }
        sb->num_read_blob++;
        prepare_lines(sb);
@@ -2888,8 +2887,7 @@ struct blame_entry *blame_entry_prepend(struct blame_entry *head,
        return new_head;
 }
 
-void setup_blame_bloom_data(struct blame_scoreboard *sb,
-                           const char *path)
+void setup_blame_bloom_data(struct blame_scoreboard *sb)
 {
        struct blame_bloom_data *bd;
        struct bloom_filter_settings *bs;
@@ -2909,7 +2907,7 @@ void setup_blame_bloom_data(struct blame_scoreboard *sb,
        bd->nr = 0;
        ALLOC_ARRAY(bd->keys, bd->alloc);
 
-       add_bloom_key(bd, path);
+       add_bloom_key(bd, sb->path);
 
        sb->bloom_data = bd;
 }