From: Lennart Poettering Date: Wed, 20 Apr 2016 16:20:51 +0000 (+0200) Subject: path-lookup: optimize a common strv copy operation away X-Git-Tag: v230~150^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8f1e0ad415dab8f3e5d301129fe2bb25c420e66f;p=thirdparty%2Fsystemd.git path-lookup: optimize a common strv copy operation away Follow-up for: https://github.com/systemd/systemd/pull/3033#discussion_r59689398 --- diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c index 80a2ea79400..ca593b6963d 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c @@ -586,9 +586,16 @@ int lookup_paths_init( if (!add) return -ENOMEM; - r = strv_extend_strv(&paths, add, true); - if (r < 0) + if (paths) { + r = strv_extend_strv(&paths, add, true); + if (r < 0) return r; + } else { + /* Small optimization: if paths is NULL (and it usually is), we can simply assign 'add' to it, + * and don't have to copy anything */ + paths = add; + add = NULL; + } } r = patch_root_prefix(&persistent_config, root);