diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | src/config/ConfigGlobal.cxx | 4 | ||||
-rw-r--r-- | src/config/Data.cxx | 30 | ||||
-rw-r--r-- | src/config/Data.hxx | 2 |
4 files changed, 34 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am index b027c9c88..349e00e14 100644 --- a/Makefile.am +++ b/Makefile.am @@ -769,7 +769,7 @@ endif libconf_a_SOURCES = \ src/config/ConfigDefaults.hxx \ src/config/ConfigPath.cxx src/config/ConfigPath.hxx \ - src/config/Data.hxx \ + src/config/Data.cxx src/config/Data.hxx \ src/config/Block.cxx src/config/Block.hxx \ src/config/Param.cxx src/config/Param.hxx \ src/config/ConfigParser.cxx src/config/ConfigParser.hxx \ diff --git a/src/config/ConfigGlobal.cxx b/src/config/ConfigGlobal.cxx index 322c800da..5c04ea93e 100644 --- a/src/config/ConfigGlobal.cxx +++ b/src/config/ConfigGlobal.cxx @@ -37,9 +37,7 @@ static ConfigData config_data; void config_global_finish(void) { - for (auto i : config_data.params) - delete i; - config_data.params.fill(0); + config_data.Clear(); } void config_global_init(void) diff --git a/src/config/Data.cxx b/src/config/Data.cxx new file mode 100644 index 000000000..ae36b7f21 --- /dev/null +++ b/src/config/Data.cxx @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2003-2015 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" +#include "Data.hxx" +#include "Param.hxx" + +void +ConfigData::Clear() +{ + for (auto i : params) + delete i; + params.fill(nullptr); +} diff --git a/src/config/Data.hxx b/src/config/Data.hxx index a79836324..af1da956f 100644 --- a/src/config/Data.hxx +++ b/src/config/Data.hxx @@ -28,6 +28,8 @@ struct config_param; struct ConfigData { std::array<config_param *, std::size_t(CONF_MAX)> params; + + void Clear(); }; #endif |