Message ID | pull.1390.v10.git.git.1734485187081.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v10] git: use calloc instead of malloc + memset where possible | expand |
"AreaZR via GitGitGadget" <gitgitgadget@gmail.com> writes: > From: Seija Kijin <doremylover123@gmail.com> > > Avoid calling malloc + memset by calling calloc. > > Signed-off-by: Seija <doremylover123@gmail.com> Name mismatch. > remote.c | 4 ++-- > submodule.c | 10 +++++----- > 2 files changed, 7 insertions(+), 7 deletions(-) I somehow hoped to see that this shrinks the line count, as you are essentially replacing two calls (malloc + memset) with one, but that is not what is happening, which is a bit disapointing. But this is a strict improvement, I guess. The reader needs to be familiar with the CALLOC_ARRAY() macro to understand it, which may make the code less newbie-friendly (as opposed to malloc+memset any reasonably competent C programmer would understand without any prior knowledge of the conventions used by this project).
diff --git a/remote.c b/remote.c index 10104d11e3c..462ff105273 100644 --- a/remote.c +++ b/remote.c @@ -2854,9 +2854,9 @@ void apply_push_cas(struct push_cas_option *cas, struct remote_state *remote_state_new(void) { - struct remote_state *r = xmalloc(sizeof(*r)); + struct remote_state *r; - memset(r, 0, sizeof(*r)); + CALLOC_ARRAY(r, 1); hashmap_init(&r->remotes_hash, remotes_hash_cmp, NULL, 0); hashmap_init(&r->branches_hash, branches_hash_cmp, NULL, 0); diff --git a/submodule.c b/submodule.c index 7ec564854d0..7707c6f48f0 100644 --- a/submodule.c +++ b/submodule.c @@ -1489,14 +1489,13 @@ struct fetch_task { */ static const struct submodule *get_non_gitmodules_submodule(const char *path) { - struct submodule *ret = NULL; + struct submodule *ret; const char *name = default_name_or_path(path); if (!name) return NULL; - ret = xmalloc(sizeof(*ret)); - memset(ret, 0, sizeof(*ret)); + CALLOC_ARRAY(ret, 1); ret->path = name; ret->name = name; @@ -1536,8 +1535,9 @@ static struct fetch_task *fetch_task_create(struct submodule_parallel_fetch *spf const char *path, const struct object_id *treeish_name) { - struct fetch_task *task = xmalloc(sizeof(*task)); - memset(task, 0, sizeof(*task)); + struct fetch_task *task; + + CALLOC_ARRAY(task, 1); if (validate_submodule_path(path) < 0) exit(128);