The environment.c contans a couple of functions which are consist from the following pattern: if (!env) setup_git_env(); return env; Let's move this to the SETUP_GIT_ENV helper macro to prevent code duplication in these functions. Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx> --- environment.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/environment.c b/environment.c index 6dec9d0..04cb6cd 100644 --- a/environment.c +++ b/environment.c @@ -126,6 +126,11 @@ const char * const local_repo_env[] = { NULL }; +#define SETUP_GIT_ENV(env) \ + if (!env) \ + setup_git_env(); \ + return env; + static char *expand_namespace(const char *raw_namespace) { struct strbuf buf = STRBUF_INIT; @@ -199,9 +204,7 @@ int is_bare_repository(void) const char *get_git_dir(void) { - if (!git_dir) - setup_git_env(); - return git_dir; + SETUP_GIT_ENV(git_dir); } const char *get_git_common_dir(void) @@ -211,9 +214,7 @@ const char *get_git_common_dir(void) const char *get_git_namespace(void) { - if (!namespace) - setup_git_env(); - return namespace; + SETUP_GIT_ENV(namespace); } const char *strip_namespace(const char *namespaced_ref) @@ -251,9 +252,7 @@ const char *get_git_work_tree(void) char *get_object_directory(void) { - if (!git_object_dir) - setup_git_env(); - return git_object_dir; + SETUP_GIT_ENV(git_object_dir); } int odb_mkstemp(char *template, size_t limit, const char *pattern) @@ -295,16 +294,12 @@ int odb_pack_keep(char *name, size_t namesz, const unsigned char *sha1) char *get_index_file(void) { - if (!git_index_file) - setup_git_env(); - return git_index_file; + SETUP_GIT_ENV(git_index_file); } char *get_graft_file(void) { - if (!git_graft_file) - setup_git_env(); - return git_graft_file; + SETUP_GIT_ENV(git_graft_file); } int set_git_dir(const char *path) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html