diff --git a/shallow.c b/shallow.c
index 58a7b20d793cbc71ab924d5f5aedf28cd01ca32a..3d53d17423a73a1e206ee631c33ec7a88c40707a 100644 (file)
--- a/shallow.c
+++ b/shallow.c
#include "cache.h"
#include "commit.h"
+#include "tag.h"
static int is_shallow = -1;
if (!commit) {
if (i < heads->nr) {
commit = (struct commit *)
- heads->objects[i++].item;
+ deref_tag(heads->objects[i++].item, NULL, 0);
if (commit->object.type != OBJ_COMMIT) {
commit = NULL;
continue;
}
- commit->util = xcalloc(1, sizeof(int));
+ if (!commit->util)
+ commit->util = xmalloc(sizeof(int));
+ *(int *)commit->util = 0;
cur_depth = 0;
} else {
commit = (struct commit *)