about summary refs log tree commit diff
path: root/third_party/git/builtin/merge-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/builtin/merge-tree.c')
-rw-r--r--third_party/git/builtin/merge-tree.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/third_party/git/builtin/merge-tree.c b/third_party/git/builtin/merge-tree.c
index e72714a5a8..97b54caeb9 100644
--- a/third_party/git/builtin/merge-tree.c
+++ b/third_party/git/builtin/merge-tree.c
@@ -180,9 +180,8 @@ static struct merge_list *create_entry(unsigned stage, unsigned mode, const stru
 
 static char *traverse_path(const struct traverse_info *info, const struct name_entry *n)
 {
-	struct strbuf buf = STRBUF_INIT;
-	strbuf_make_traverse_path(&buf, info, n->path, n->pathlen);
-	return strbuf_detach(&buf, NULL);
+	char *path = xmallocz(traverse_path_len(info, n) + the_hash_algo->rawsz);
+	return make_traverse_path(path, info, n);
 }
 
 static void resolve(const struct traverse_info *info, struct name_entry *ours, struct name_entry *result)