From 008723c62fe9686812758dfffb06d59f998f6204 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 19 Feb 2014 23:57:55 +0100 Subject: ConfigGlobal: eliminate function config_get_next_param() --- src/Listen.cxx | 7 ++----- src/Permission.cxx | 4 ++-- src/config/ConfigGlobal.cxx | 12 +++++------- src/config/ConfigGlobal.hxx | 15 +++------------ src/neighbor/Glue.cxx | 4 ++-- src/output/MultipleOutputs.cxx | 5 ++--- 6 files changed, 16 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/Listen.cxx b/src/Listen.cxx index e8efc79ce..d48d795d1 100644 --- a/src/Listen.cxx +++ b/src/Listen.cxx @@ -105,7 +105,7 @@ listen_global_init(EventLoop &loop, Partition &partition, Error &error) { int port = config_get_positive(CONF_PORT, DEFAULT_PORT); const struct config_param *param = - config_get_next_param(CONF_BIND_TO_ADDRESS, nullptr); + config_get_param(CONF_BIND_TO_ADDRESS); listen_socket = new ClientListener(loop, partition); @@ -129,10 +129,7 @@ listen_global_init(EventLoop &loop, Partition &partition, Error &error) param->line); return false; } - - param = config_get_next_param(CONF_BIND_TO_ADDRESS, - param); - } while (param != nullptr); + } while ((param = param->next) != nullptr); } else { /* no "bind_to_address" configured, bind the configured port on all interfaces */ diff --git a/src/Permission.cxx b/src/Permission.cxx index d2d9d4297..d6c267ab7 100644 --- a/src/Permission.cxx +++ b/src/Permission.cxx @@ -92,7 +92,7 @@ void initPermissions(void) permission_default = PERMISSION_READ | PERMISSION_ADD | PERMISSION_CONTROL | PERMISSION_ADMIN; - param = config_get_next_param(CONF_PASSWORD, NULL); + param = config_get_param(CONF_PASSWORD); if (param) { permission_default = 0; @@ -115,7 +115,7 @@ void initPermissions(void) permission_passwords.insert(std::make_pair(std::move(password), permission)); - } while ((param = config_get_next_param(CONF_PASSWORD, param))); + } while ((param = param->next) != nullptr); } param = config_get_param(CONF_DEFAULT_PERMS); diff --git a/src/config/ConfigGlobal.cxx b/src/config/ConfigGlobal.cxx index dd76e3ca3..9bc83398c 100644 --- a/src/config/ConfigGlobal.cxx +++ b/src/config/ConfigGlobal.cxx @@ -74,12 +74,10 @@ void config_global_check(void) Check(p); } -const struct config_param * -config_get_next_param(ConfigOption option, const struct config_param * last) +const config_param * +config_get_param(ConfigOption option) { - config_param *param = last != nullptr - ? last->next - : config_data.params[unsigned(option)]; + config_param *param = config_data.params[unsigned(option)]; if (param != nullptr) param->used = true; return param; @@ -88,8 +86,8 @@ config_get_next_param(ConfigOption option, const struct config_param * last) const config_param * config_find_block(ConfigOption option, const char *key, const char *value) { - const config_param *param = nullptr; - while ((param = config_get_next_param(option, param)) != nullptr) { + for (const config_param *param = config_get_param(option); + param != nullptr; param = param->next) { const char *value2 = param->GetBlockValue(key); if (value2 == nullptr) FormatFatalError("block without '%s' name in line %d", diff --git a/src/config/ConfigGlobal.hxx b/src/config/ConfigGlobal.hxx index 84ef7dd5f..831418d03 100644 --- a/src/config/ConfigGlobal.hxx +++ b/src/config/ConfigGlobal.hxx @@ -26,6 +26,7 @@ class Error; class Path; class AllocatedPath; +struct config_param; void config_global_init(void); void config_global_finish(void); @@ -39,19 +40,9 @@ void config_global_check(void); bool ReadConfigFile(Path path, Error &error); -/* don't free the returned value - set _last_ to nullptr to get first entry */ gcc_pure -const struct config_param * -config_get_next_param(enum ConfigOption option, - const struct config_param *last); - -gcc_pure -static inline const struct config_param * -config_get_param(enum ConfigOption option) -{ - return config_get_next_param(option, nullptr); -} +const config_param * +config_get_param(enum ConfigOption option); /** * Find a block with a matching attribute. diff --git a/src/neighbor/Glue.cxx b/src/neighbor/Glue.cxx index 7e29b8410..fbf25cc8d 100644 --- a/src/neighbor/Glue.cxx +++ b/src/neighbor/Glue.cxx @@ -59,8 +59,8 @@ CreateNeighborExplorer(EventLoop &loop, NeighborListener &listener, bool NeighborGlue::Init(EventLoop &loop, NeighborListener &listener, Error &error) { - const config_param *param = nullptr; - while ((param = config_get_next_param(CONF_NEIGHBORS, param))) { + for (const config_param *param = config_get_param(CONF_NEIGHBORS); + param != nullptr; param = param->next) { NeighborExplorer *explorer = CreateNeighborExplorer(loop, listener, *param, error); if (explorer == nullptr) { diff --git a/src/output/MultipleOutputs.cxx b/src/output/MultipleOutputs.cxx index 10e3e3bd5..2791e7045 100644 --- a/src/output/MultipleOutputs.cxx +++ b/src/output/MultipleOutputs.cxx @@ -73,9 +73,8 @@ LoadOutput(EventLoop &event_loop, MixerListener &mixer_listener, void MultipleOutputs::Configure(EventLoop &event_loop, PlayerControl &pc) { - const config_param *param = nullptr; - while ((param = config_get_next_param(CONF_AUDIO_OUTPUT, - param)) != nullptr) { + for (const config_param *param = config_get_param(CONF_AUDIO_OUTPUT); + param != nullptr; param = param->next) { auto output = LoadOutput(event_loop, mixer_listener, pc, *param); if (FindByName(output->name) != nullptr) -- cgit v1.2.3