aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-30 22:09:25 +0100
committerMax Kellermann <max@duempel.org>2013-01-30 22:20:14 +0100
commit2d63c26936b2b9acfb8f2f81a109e4aff0b26fe7 (patch)
tree1c2bc61d5d53edabf09c8294e1d1d207551eb1cf
parent3cdd01aa1b889698768f2c53d736873f9f558e3b (diff)
ConfigData: use std::string in block_param
-rw-r--r--src/ConfigData.cxx19
-rw-r--r--src/ConfigData.hxx5
-rw-r--r--src/ConfigGlobal.cxx2
3 files changed, 11 insertions, 15 deletions
diff --git a/src/ConfigData.cxx b/src/ConfigData.cxx
index 1635dfc5..b542dccd 100644
--- a/src/ConfigData.cxx
+++ b/src/ConfigData.cxx
@@ -53,11 +53,6 @@ config_param_free(struct config_param *param)
{
g_free(param->value);
- for (auto &i : param->block_params) {
- g_free(i.name);
- g_free(i.value);
- }
-
delete param;
}
@@ -70,8 +65,8 @@ config_add_block_param(struct config_param * param, const char *name,
param->block_params.push_back(block_param());
struct block_param *bp = &param->block_params.back();
- bp->name = g_strdup(name);
- bp->value = g_strdup(value);
+ bp->name = name;
+ bp->value = value;
bp->line = line;
bp->used = false;
}
@@ -83,7 +78,7 @@ config_get_block_param(const struct config_param * param, const char *name)
return NULL;
for (auto &i : param->block_params) {
- if (0 == strcmp(name, i.name)) {
+ if (i.name == name) {
i.used = true;
return &i;
}
@@ -101,7 +96,7 @@ config_get_block_string(const struct config_param *param, const char *name,
if (bp == NULL)
return default_value;
- return bp->value;
+ return bp->value.c_str();
}
char *
@@ -122,7 +117,7 @@ config_dup_block_path(const struct config_param *param, const char *name,
if (bp == NULL)
return NULL;
- char *path = parsePath(bp->value, error_r);
+ char *path = parsePath(bp->value.c_str(), error_r);
if (G_UNLIKELY(path == NULL))
g_prefix_error(error_r,
"Invalid path in \"%s\" at line %i: ",
@@ -142,7 +137,7 @@ config_get_block_unsigned(const struct config_param *param, const char *name,
if (bp == NULL)
return default_value;
- value = strtol(bp->value, &endptr, 0);
+ value = strtol(bp->value.c_str(), &endptr, 0);
if (*endptr != 0)
MPD_ERROR("Not a valid number in line %i", bp->line);
@@ -162,7 +157,7 @@ config_get_block_bool(const struct config_param *param, const char *name,
if (bp == NULL)
return default_value;
- success = get_bool(bp->value, &value);
+ success = get_bool(bp->value.c_str(), &value);
if (!success)
MPD_ERROR("%s is not a boolean value (yes, true, 1) or "
"(no, false, 0) on line %i\n",
diff --git a/src/ConfigData.hxx b/src/ConfigData.hxx
index 6da0e73b..b71c0a9e 100644
--- a/src/ConfigData.hxx
+++ b/src/ConfigData.hxx
@@ -26,6 +26,7 @@
#ifdef __cplusplus
#include <glib.h>
+#include <string>
#include <array>
#include <vector>
#endif
@@ -35,8 +36,8 @@
#ifdef __cplusplus
struct block_param {
- char *name;
- char *value;
+ std::string name;
+ std::string value;
int line;
/**
diff --git a/src/ConfigGlobal.cxx b/src/ConfigGlobal.cxx
index d70a7f5b..92e0b541 100644
--- a/src/ConfigGlobal.cxx
+++ b/src/ConfigGlobal.cxx
@@ -79,7 +79,7 @@ config_param_check(gpointer data, G_GNUC_UNUSED gpointer user_data)
for (const auto &i : param->block_params) {
if (!i.used)
g_warning("option '%s' on line %i was not recognized",
- i.name, i.line);
+ i.name.c_str(), i.line);
}
}