]> granicus.if.org Git - cgit/commitdiff
Make print_branch() handle refs not pointing at commits
authorLars Hjemli <hjemli@gmail.com>
Sun, 28 Oct 2007 14:36:18 +0000 (15:36 +0100)
committerLars Hjemli <hjemli@gmail.com>
Sun, 28 Oct 2007 14:38:19 +0000 (15:38 +0100)
The master branch of stable/linux-2.6.20 currently references a tag
object, which makes print_branch() die with a segfault. This teaches
print_branch() to handle such cases more gracefully.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
ui-summary.c

index 04a466a319f384b03ff92909e462aa7baaec5b8d..ba90510f0289d11dcfa9263cf86a03ae5c6a0bb3 100644 (file)
@@ -58,11 +58,17 @@ static int print_branch(struct refinfo *ref)
        html("<tr><td>");
        cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0);
        html("</td><td>");
-       cgit_print_age(info->commit->date, -1, NULL);
-       html("</td><td>");
-       html_txt(info->author);
-       html("</td><td>");
-       cgit_commit_link(info->subject, NULL, NULL, name, NULL);
+
+       if (ref->object->type == OBJ_COMMIT) {
+               cgit_print_age(info->commit->date, -1, NULL);
+               html("</td><td>");
+               html_txt(info->author);
+               html("</td><td>");
+               cgit_commit_link(info->subject, NULL, NULL, name, NULL);
+       } else {
+               html("</td><td></td><td>");
+               cgit_object_link(ref->object);
+       }
        html("</td></tr>\n");
        return 0;
 }