diff options
Diffstat (limited to 'ui-tree.c')
-rw-r--r-- | ui-tree.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -271,7 +271,6 @@ void cgit_print_tree(const char *rev, char *path) | |||
271 | if (!rev) | 271 | if (!rev) |
272 | rev = ctx.qry.head; | 272 | rev = ctx.qry.head; |
273 | 273 | ||
274 | walk_tree_ctx.curr_rev = xstrdup(rev); | ||
275 | if (get_sha1(rev, sha1)) { | 274 | if (get_sha1(rev, sha1)) { |
276 | cgit_print_error(fmt("Invalid revision name: %s", rev)); | 275 | cgit_print_error(fmt("Invalid revision name: %s", rev)); |
277 | return; | 276 | return; |
@@ -282,12 +281,17 @@ void cgit_print_tree(const char *rev, char *path) | |||
282 | return; | 281 | return; |
283 | } | 282 | } |
284 | 283 | ||
284 | walk_tree_ctx.curr_rev = xstrdup(rev); | ||
285 | |||
285 | if (path == NULL) { | 286 | if (path == NULL) { |
286 | ls_tree(commit->tree->object.sha1, NULL, &walk_tree_ctx); | 287 | ls_tree(commit->tree->object.sha1, NULL, &walk_tree_ctx); |
287 | return; | 288 | goto cleanup; |
288 | } | 289 | } |
289 | 290 | ||
290 | read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | 291 | read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); |
291 | if (walk_tree_ctx.state == 1) | 292 | if (walk_tree_ctx.state == 1) |
292 | ls_tail(); | 293 | ls_tail(); |
294 | |||
295 | cleanup: | ||
296 | free(walk_tree_ctx.curr_rev); | ||
293 | } | 297 | } |