aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--combine-diff.c5
-rw-r--r--diff.h3
2 files changed, 3 insertions, 5 deletions
diff --git a/combine-diff.c b/combine-diff.c
index ae3cbfc699..f21e1f58ba 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -1658,8 +1658,9 @@ struct combine_diff_path *combine_diff_path_new(const char *path,
size_t num_parents)
{
struct combine_diff_path *p;
+ size_t parent_len = st_mult(sizeof(p->parent[0]), num_parents);
- p = xmalloc(combine_diff_path_size(num_parents, path_len));
+ p = xmalloc(st_add4(sizeof(*p), path_len, 1, parent_len));
p->path = (char *)&(p->parent[num_parents]);
memcpy(p->path, path, path_len);
p->path[path_len] = 0;
@@ -1667,7 +1668,7 @@ struct combine_diff_path *combine_diff_path_new(const char *path,
p->mode = mode;
oidcpy(&p->oid, oid);
- memset(p->parent, 0, sizeof(p->parent[0]) * num_parents);
+ memset(p->parent, 0, parent_len);
return p;
}
diff --git a/diff.h b/diff.h
index 60e7db4ad6..32ad17fd38 100644
--- a/diff.h
+++ b/diff.h
@@ -489,9 +489,6 @@ struct combine_diff_path {
char *path;
} parent[FLEX_ARRAY];
};
-#define combine_diff_path_size(n, l) \
- st_add4(sizeof(struct combine_diff_path), (l), 1, \
- st_mult(sizeof(struct combine_diff_parent), (n)))
struct combine_diff_path *combine_diff_path_new(const char *path,
size_t path_len,
unsigned int mode,