From 0918e25077cb9321011a973703cc597b078f0ab5 Mon Sep 17 00:00:00 2001 From: Heiko Voigt Date: Thu, 28 Jul 2016 14:49:47 +0200 Subject: [PATCH] submodule-config: combine early return code into one goto So we have simpler return handling code and all the cleanup code in almost one place. Signed-off-by: Heiko Voigt Reviewed-by: Stefan Beller Signed-off-by: Junio C Hamano --- submodule-config.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/submodule-config.c b/submodule-config.c index 853989e558..a887574590 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -376,7 +376,7 @@ static const struct submodule *config_from(struct submodule_cache *cache, { struct strbuf rev = STRBUF_INIT; unsigned long config_size; - char *config; + char *config = NULL; unsigned char sha1[20]; enum object_type type; const struct submodule *submodule = NULL; @@ -397,10 +397,8 @@ static const struct submodule *config_from(struct submodule_cache *cache, return entry->config; } - if (!gitmodule_sha1_from_commit(commit_sha1, sha1, &rev)) { - strbuf_release(&rev); - return NULL; - } + if (!gitmodule_sha1_from_commit(commit_sha1, sha1, &rev)) + goto out; switch (lookup_type) { case lookup_name: @@ -410,22 +408,12 @@ static const struct submodule *config_from(struct submodule_cache *cache, submodule = cache_lookup_path(cache, sha1, key); break; } - if (submodule) { - strbuf_release(&rev); - return submodule; - } + if (submodule) + goto out; config = read_sha1_file(sha1, &type, &config_size); - if (!config) { - strbuf_release(&rev); - return NULL; - } - - if (type != OBJ_BLOB) { - strbuf_release(&rev); - free(config); - return NULL; - } + if (!config || type != OBJ_BLOB) + goto out; /* fill the submodule config into the cache */ parameter.cache = cache; @@ -445,6 +433,11 @@ static const struct submodule *config_from(struct submodule_cache *cache, default: return NULL; } + +out: + strbuf_release(&rev); + free(config); + return submodule; } static const struct submodule *config_from_path(struct submodule_cache *cache, -- 2.43.2