summaryrefslogtreecommitdiff
path: root/bus
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2017-02-13 19:31:39 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2017-02-17 12:16:32 +0000
commitade23fe4615d91d971aee05c3463fc25764478e5 (patch)
treef7927cb14a0c84aa0d6b9c694a1d98e0bd21e53f /bus
parentb0318741062a87456bed79a6d248c8bf449e4870 (diff)
downloaddbus-ade23fe4615d91d971aee05c3463fc25764478e5.tar.gz
config-parser: Eliminate duplicate functionality
We had two ways to append a path to the list of service directories. Collapse them into one. Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99825 Reviewed-by: Philip Withnall <withnall@endlessm.com>
Diffstat (limited to 'bus')
-rw-r--r--bus/config-parser.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/bus/config-parser.c b/bus/config-parser.c
index b776a2d0..cc5690dd 100644
--- a/bus/config-parser.c
+++ b/bus/config-parser.c
@@ -252,17 +252,6 @@ service_dirs_find_dir (DBusList **service_dirs,
return FALSE;
}
-static dbus_bool_t
-service_dirs_append_unique_or_free (DBusList **service_dirs,
- char *dir)
-{
- if (!service_dirs_find_dir (service_dirs, dir))
- return _dbus_list_append (service_dirs, dir);
-
- dbus_free (dir);
- return TRUE;
-}
-
static void
service_dirs_append_link_unique_or_free (DBusList **service_dirs,
DBusList *dir_link)
@@ -2601,7 +2590,8 @@ bus_config_parser_content (BusConfigParser *parser,
{
char *s;
DBusString full_path;
-
+ DBusList *link;
+
e->had_content = TRUE;
if (!_dbus_string_init (&full_path))
@@ -2619,14 +2609,17 @@ bus_config_parser_content (BusConfigParser *parser,
goto nomem;
}
- /* _only_ extra session directories can be specified */
- if (!service_dirs_append_unique_or_free (&parser->service_dirs, s))
+ link = _dbus_list_alloc_link (s);
+
+ if (link == NULL)
{
_dbus_string_free (&full_path);
dbus_free (s);
goto nomem;
}
+ /* cannot fail */
+ service_dirs_append_link_unique_or_free (&parser->service_dirs, link);
_dbus_string_free (&full_path);
}
break;