cocci: refactor common patterns to use xstrdup_or_null()
d64ea0f83b
("git-compat-util: add xstrdup_or_null helper",
2015-01-12) added a handy wrapper that allows us to get a duplicate
of a string or NULL if the original is NULL, but a handful of
codepath predate its introduction or just weren't aware of it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
74eeaf7b72
commit
13092a916d
7
contrib/coccinelle/xstrdup_or_null.cocci
Normal file
7
contrib/coccinelle/xstrdup_or_null.cocci
Normal file
@ -0,0 +1,7 @@
|
||||
@@
|
||||
expression E;
|
||||
expression V;
|
||||
@@
|
||||
- if (E)
|
||||
- V = xstrdup(E);
|
||||
+ V = xstrdup_or_null(E);
|
3
git.c
3
git.c
@ -35,8 +35,7 @@ static void save_env_before_alias(void)
|
||||
orig_cwd = xgetcwd();
|
||||
for (i = 0; i < ARRAY_SIZE(env_names); i++) {
|
||||
orig_env[i] = getenv(env_names[i]);
|
||||
if (orig_env[i])
|
||||
orig_env[i] = xstrdup(orig_env[i]);
|
||||
orig_env[i] = xstrdup_or_null(orig_env[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1082,10 +1082,8 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *f
|
||||
cred.protocol = xstrdup(srvc->use_ssl ? "imaps" : "imap");
|
||||
cred.host = xstrdup(srvc->host);
|
||||
|
||||
if (srvc->user)
|
||||
cred.username = xstrdup(srvc->user);
|
||||
if (srvc->pass)
|
||||
cred.password = xstrdup(srvc->pass);
|
||||
cred.username = xstrdup_or_null(srvc->user);
|
||||
cred.password = xstrdup_or_null(srvc->pass);
|
||||
|
||||
credential_fill(&cred);
|
||||
|
||||
|
@ -103,10 +103,8 @@ static void add_mapping(struct string_list *map,
|
||||
} else {
|
||||
struct mailmap_info *mi = xcalloc(1, sizeof(struct mailmap_info));
|
||||
debug_mm("mailmap: adding (complex) entry for '%s'\n", old_email);
|
||||
if (new_name)
|
||||
mi->name = xstrdup(new_name);
|
||||
if (new_email)
|
||||
mi->email = xstrdup(new_email);
|
||||
mi->name = xstrdup_or_null(new_name);
|
||||
mi->email = xstrdup_or_null(new_email);
|
||||
string_list_insert(&me->namemap, old_name)->util = mi;
|
||||
}
|
||||
|
||||
|
3
refs.c
3
refs.c
@ -791,8 +791,7 @@ struct ref_update *ref_transaction_add_update(
|
||||
hashcpy(update->new_sha1, new_sha1);
|
||||
if (flags & REF_HAVE_OLD)
|
||||
hashcpy(update->old_sha1, old_sha1);
|
||||
if (msg)
|
||||
update->msg = xstrdup(msg);
|
||||
update->msg = xstrdup_or_null(msg);
|
||||
return update;
|
||||
}
|
||||
|
||||
|
@ -181,8 +181,7 @@ static int receive_status(int in, struct ref *refs)
|
||||
hint->status = REF_STATUS_REMOTE_REJECT;
|
||||
ret = -1;
|
||||
}
|
||||
if (msg)
|
||||
hint->remote_status = xstrdup(msg);
|
||||
hint->remote_status = xstrdup_or_null(msg);
|
||||
/* start our next search from the next ref */
|
||||
hint = hint->next;
|
||||
}
|
||||
|
@ -428,12 +428,9 @@ static int set_if_missing(struct conf_info *item, const char *value)
|
||||
static void duplicate_conf(struct conf_info *dst, struct conf_info *src)
|
||||
{
|
||||
*dst = *src;
|
||||
if (src->name)
|
||||
dst->name = xstrdup(src->name);
|
||||
if (src->key)
|
||||
dst->key = xstrdup(src->key);
|
||||
if (src->command)
|
||||
dst->command = xstrdup(src->command);
|
||||
dst->name = xstrdup_or_null(src->name);
|
||||
dst->key = xstrdup_or_null(src->key);
|
||||
dst->command = xstrdup_or_null(src->command);
|
||||
}
|
||||
|
||||
static struct trailer_item *get_conf_item(const char *name)
|
||||
|
Loading…
Reference in New Issue
Block a user