diff --git a/builtin-reflog.c b/builtin-reflog.c
index cefb40da812819ed6c8af245f676b0365e23d3ea..4c39f1da98e5e690f28f5145a1ab5dba790da68d 100644 (file)
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
if (tree->object.flags & INCOMPLETE)
return 0;
- desc.buf = tree->buffer;
- desc.size = tree->size;
- if (!desc.buf) {
- char type[20];
- void *data = read_sha1_file(sha1, type, &desc.size);
+ if (!tree->buffer) {
+ enum object_type type;
+ unsigned long size;
+ void *data = read_sha1_file(sha1, &type, &size);
if (!data) {
tree->object.flags |= INCOMPLETE;
return 0;
}
- desc.buf = data;
tree->buffer = data;
+ tree->size = size;
}
+ init_tree_desc(&desc, tree->buffer, tree->size);
complete = 1;
while (tree_entry(&desc, &entry)) {
if (!has_sha1_file(entry.sha1) ||