tree-wide: use strv_isempty() instead of strv_length() == 0

It's a lot faster in many cases, since it's O(1) rather than O(n).
This commit is contained in:
Lennart Poettering 2017-11-29 12:40:22 +01:00
parent 5716965132
commit 7b943bb7e3
5 changed files with 25 additions and 10 deletions

15
coccinelle/isempty.cocci Normal file
View File

@ -0,0 +1,15 @@
@@
expression s;
@@
- strv_length(s) == 0
+ strv_isempty(s)
@@
expression s;
@@
- strlen(s) == 0
+ isempty(s)
@@
expression s;
@@
- strlen_ptr(s) == 0
+ isempty(s)

View File

@ -1108,7 +1108,7 @@ int bus_exec_context_set_transient_property(
}
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
c->supplementary_groups = strv_free(c->supplementary_groups);
unit_write_settingf(u, flags, name, "%s=", name);
} else {
@ -1360,7 +1360,7 @@ int bus_exec_context_set_transient_property(
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
_cleanup_free_ char *joined = NULL;
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
c->syscall_whitelist = false;
c->syscall_filter = hashmap_free(c->syscall_filter);
} else {
@ -1433,7 +1433,7 @@ int bus_exec_context_set_transient_property(
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
_cleanup_free_ char *joined = NULL;
if (strv_length(l) == 0)
if (strv_isempty(l))
c->syscall_archs = set_free(c->syscall_archs);
else {
char **s;
@ -1506,7 +1506,7 @@ int bus_exec_context_set_transient_property(
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
_cleanup_free_ char *joined = NULL;
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
c->address_families_whitelist = false;
c->address_families = set_free(c->address_families);
} else {
@ -2073,7 +2073,7 @@ int bus_exec_context_set_transient_property(
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid environment block.");
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
c->environment = strv_free(c->environment);
unit_write_setting(u, flags, name, "Environment=");
} else {
@ -2109,7 +2109,7 @@ int bus_exec_context_set_transient_property(
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid UnsetEnvironment= list.");
if (!UNIT_WRITE_FLAGS_NOOP(flags)) {
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
c->unset_environment = strv_free(c->unset_environment);
unit_write_setting(u, flags, name, "UnsetEnvironment=");
} else {
@ -2316,7 +2316,7 @@ int bus_exec_context_set_transient_property(
else /* "InaccessiblePaths" */
dirs = &c->inaccessible_paths;
if (strv_length(l) == 0) {
if (strv_isempty(l)) {
*dirs = strv_free(*dirs);
unit_write_settingf(u, flags, name, "%s=", name);
} else {

View File

@ -47,7 +47,7 @@ static void test_paths(UnitFileScope scope) {
assert_se(strv_length(lp_with_env.search_path) == 1);
assert_se(streq(lp_with_env.search_path[0], systemd_unit_path));
assert_se(lookup_paths_reduce(&lp_with_env) >= 0);
assert_se(strv_length(lp_with_env.search_path) == 0);
assert_se(strv_isempty(lp_with_env.search_path));
assert_se(rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0);
}

View File

@ -1788,7 +1788,7 @@ static bool should_include_path(const char *path) {
/* no matches, so we should include this path only if we
* have no whitelist at all */
if (strv_length(arg_include_prefixes) == 0)
if (strv_isempty(arg_include_prefixes))
return true;
log_debug("Entry \"%s\" does not match any include prefix, skipping.", path);

View File

@ -162,7 +162,7 @@ static int checkout(int fd)
if (ptr) {
*ptr = '\0';
ptr++;
if (!strlen(word))
if (isempty(word))
continue;
if (debug)