Alexander Kuleshov <kuleshovmail@xxxxxxxxx> writes: > 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. Please don't. A macro that hides "return" makes things harder to follow, not easier. > > 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) -- 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