read-cache: free cache entry in add_to_index in case of early return

This frees `ce` would be leaking in the error path. Additionally a free is moved towards the return. This helps code readability as we often have this pattern of freeing resources just before return/exit and not in between the code. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed Mar 20, 2015 at 17:28 UTC 2d9426b049335c1a39be7ea7416094e944bfe63c
1 file changed +5 -2
read-cache.c
+5 -2
@@ -681,15 +681,18 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st,
681 alias = index_file_exists(istate, ce->name, ce_namelen(ce), ignore_case);
682 if (alias && !ce_stage(alias) && !ie_match_stat(istate, alias, st, ce_option)) {
683 /* Nothing changed, really */
684 - free(ce);
684 if (!S_ISGITLINK(alias->ce_mode))
685 ce_mark_uptodate(alias);
686 alias->ce_flags |= CE_ADDED;
687 +
688 + free(ce);
689 return 0;
690 }
691 if (!intent_only) {
691 - if (index_path(ce->sha1, path, st, HASH_WRITE_OBJECT))
692 + if (index_path(ce->sha1, path, st, HASH_WRITE_OBJECT)) {
693 + free(ce);
694 return error("unable to index file %s", path);
695 + }
696 } else
697 set_object_name_for_intent_to_add_entry(ce);
698