#include "blob.h"
#include "commit.h"
#include "tag.h"
+#include "alloc.h"
#include "tree-walk.h"
const char *tree_type = "tree";
oid_to_hex(entry.oid),
base->buf, entry.path);
- oidcpy(&oid, &commit->tree->object.oid);
+ oidcpy(&oid, get_commit_tree_oid(commit));
}
else
continue;
{
struct object *obj = lookup_object(oid->hash);
if (!obj)
- return create_object(oid->hash, alloc_tree_node());
+ return create_object(the_repository, oid->hash,
+ alloc_tree_node(the_repository));
return object_as_type(obj, OBJ_TREE, 0);
}
if (obj->type == OBJ_TREE)
return (struct tree *) obj;
else if (obj->type == OBJ_COMMIT)
- obj = &(((struct commit *) obj)->tree->object);
+ obj = &(get_commit_tree(((struct commit *)obj))->object);
else if (obj->type == OBJ_TAG)
obj = ((struct tag *) obj)->tagged;
else