1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-31 14:50:15 +03:00

util: optimize free_and_strdup() if NOP

Under the assumption that strcmp() is cheaper than memory allocation,
let's avoid the allocation, if the new value is identical to the old.
This commit is contained in:
Lennart Poettering 2015-05-11 20:09:58 +02:00
parent 27023c0ef5
commit 4b64536ee7

View File

@ -5682,6 +5682,9 @@ int free_and_strdup(char **p, const char *s) {
/* Replaces a string pointer with an strdup()ed new string,
* possibly freeing the old one. */
if (streq_ptr(*p, s))
return 0;
if (s) {
t = strdup(s);
if (!t)
@ -5692,7 +5695,7 @@ int free_and_strdup(char **p, const char *s) {
free(*p);
*p = t;
return 0;
return 1;
}
int sethostname_idempotent(const char *s) {