|
@@ -182,12 +182,6 @@ static void parse_type_int64(Visitor *v, const char *name, int64_t *obj,
|
|
{
|
|
{
|
|
StringInputVisitor *siv = to_siv(v);
|
|
StringInputVisitor *siv = to_siv(v);
|
|
|
|
|
|
- if (!siv->string) {
|
|
|
|
- error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
|
|
- "integer");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (parse_str(siv, name, errp) < 0) {
|
|
if (parse_str(siv, name, errp) < 0) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -242,13 +236,7 @@ static void parse_type_size(Visitor *v, const char *name, uint64_t *obj,
|
|
Error *err = NULL;
|
|
Error *err = NULL;
|
|
uint64_t val;
|
|
uint64_t val;
|
|
|
|
|
|
- if (siv->string) {
|
|
|
|
- parse_option_size(name, siv->string, &val, &err);
|
|
|
|
- } else {
|
|
|
|
- error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
|
|
- "size");
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ parse_option_size(name, siv->string, &val, &err);
|
|
if (err) {
|
|
if (err) {
|
|
error_propagate(errp, err);
|
|
error_propagate(errp, err);
|
|
return;
|
|
return;
|
|
@@ -262,19 +250,17 @@ static void parse_type_bool(Visitor *v, const char *name, bool *obj,
|
|
{
|
|
{
|
|
StringInputVisitor *siv = to_siv(v);
|
|
StringInputVisitor *siv = to_siv(v);
|
|
|
|
|
|
- if (siv->string) {
|
|
|
|
- if (!strcasecmp(siv->string, "on") ||
|
|
|
|
- !strcasecmp(siv->string, "yes") ||
|
|
|
|
- !strcasecmp(siv->string, "true")) {
|
|
|
|
- *obj = true;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- if (!strcasecmp(siv->string, "off") ||
|
|
|
|
- !strcasecmp(siv->string, "no") ||
|
|
|
|
- !strcasecmp(siv->string, "false")) {
|
|
|
|
- *obj = false;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ if (!strcasecmp(siv->string, "on") ||
|
|
|
|
+ !strcasecmp(siv->string, "yes") ||
|
|
|
|
+ !strcasecmp(siv->string, "true")) {
|
|
|
|
+ *obj = true;
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (!strcasecmp(siv->string, "off") ||
|
|
|
|
+ !strcasecmp(siv->string, "no") ||
|
|
|
|
+ !strcasecmp(siv->string, "false")) {
|
|
|
|
+ *obj = false;
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
@@ -285,13 +271,8 @@ static void parse_type_str(Visitor *v, const char *name, char **obj,
|
|
Error **errp)
|
|
Error **errp)
|
|
{
|
|
{
|
|
StringInputVisitor *siv = to_siv(v);
|
|
StringInputVisitor *siv = to_siv(v);
|
|
- if (siv->string) {
|
|
|
|
- *obj = g_strdup(siv->string);
|
|
|
|
- } else {
|
|
|
|
- *obj = NULL;
|
|
|
|
- error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
|
|
- "string");
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ *obj = g_strdup(siv->string);
|
|
}
|
|
}
|
|
|
|
|
|
static void parse_type_number(Visitor *v, const char *name, double *obj,
|
|
static void parse_type_number(Visitor *v, const char *name, double *obj,
|
|
@@ -302,10 +283,8 @@ static void parse_type_number(Visitor *v, const char *name, double *obj,
|
|
double val;
|
|
double val;
|
|
|
|
|
|
errno = 0;
|
|
errno = 0;
|
|
- if (siv->string) {
|
|
|
|
- val = strtod(siv->string, &endp);
|
|
|
|
- }
|
|
|
|
- if (!siv->string || errno || endp == siv->string || *endp) {
|
|
|
|
|
|
+ val = strtod(siv->string, &endp);
|
|
|
|
+ if (errno || endp == siv->string || *endp) {
|
|
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null",
|
|
"number");
|
|
"number");
|
|
return;
|
|
return;
|
|
@@ -327,6 +306,7 @@ Visitor *string_input_visitor_new(const char *str)
|
|
{
|
|
{
|
|
StringInputVisitor *v;
|
|
StringInputVisitor *v;
|
|
|
|
|
|
|
|
+ assert(str);
|
|
v = g_malloc0(sizeof(*v));
|
|
v = g_malloc0(sizeof(*v));
|
|
|
|
|
|
v->visitor.type = VISITOR_INPUT;
|
|
v->visitor.type = VISITOR_INPUT;
|