Replace xmalloc+memset(0) with xcalloc.
[git.git] / tree-diff.c
index d978428..701fbba 100644 (file)
@@ -3,40 +3,13 @@
  */
 #include "cache.h"
 #include "diff.h"
+#include "tree.h"
 
 // What paths are we interested in?
 static int nr_paths = 0;
 static const char **paths = NULL;
 static int *pathlens = NULL;
 
-void update_tree_entry(struct tree_desc *desc)
-{
-       void *buf = desc->buf;
-       unsigned long size = desc->size;
-       int len = strlen(buf) + 1 + 20;
-
-       if (size < len)
-               die("corrupt tree file");
-       desc->buf = buf + len;
-       desc->size = size - len;
-}
-
-const unsigned char *tree_entry_extract(struct tree_desc *desc, const char **pathp, unsigned int *modep)
-{
-       void *tree = desc->buf;
-       unsigned long size = desc->size;
-       int len = strlen(tree)+1;
-       const unsigned char *sha1 = tree + len;
-       const char *path = strchr(tree, ' ');
-       unsigned int mode;
-
-       if (!path || size < len + 20 || sscanf(tree, "%o", &mode) != 1)
-               die("corrupt tree file");
-       *pathp = path+1;
-       *modep = DIFF_FILE_CANON_MODE(mode);
-       return sha1;
-}
-
 static char *malloc_base(const char *base, const char *path, int pathlen)
 {
        int baselen = strlen(base);
@@ -176,7 +149,7 @@ static int show_entry(struct diff_options *opt, const char *prefix, struct tree_
                void *tree;
 
                tree = read_sha1_file(sha1, type, &inner.size);
-               if (!tree || strcmp(type, "tree"))
+               if (!tree || strcmp(type, tree_type))
                        die("corrupt tree sha %s", sha1_to_hex(sha1));
 
                inner.buf = tree;
@@ -234,10 +207,10 @@ int diff_tree_sha1(const unsigned char *old, const unsigned char *new, const cha
        struct tree_desc t1, t2;
        int retval;
 
-       tree1 = read_object_with_reference(old, "tree", &t1.size, NULL);
+       tree1 = read_object_with_reference(old, tree_type, &t1.size, NULL);
        if (!tree1)
                die("unable to read source tree (%s)", sha1_to_hex(old));
-       tree2 = read_object_with_reference(new, "tree", &t2.size, NULL);
+       tree2 = read_object_with_reference(new, tree_type, &t2.size, NULL);
        if (!tree2)
                die("unable to read destination tree (%s)", sha1_to_hex(new));
        t1.buf = tree1;