[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 18/20] keyval: Use GString to accumulate value strings
From: |
Markus Armbruster |
Subject: |
[PATCH 18/20] keyval: Use GString to accumulate value strings |
Date: |
Fri, 11 Dec 2020 18:11:50 +0100 |
QString supports modifying its string, but it's quite limited: you can
only append. The remaining callers use it for building an initial
string, never for modifying it later.
Change keyval_parse_one() to do build the initial string with GString.
This is another step towards making QString immutable.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
util/keyval.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/util/keyval.c b/util/keyval.c
index 7f625ad33c..be34928813 100644
--- a/util/keyval.c
+++ b/util/keyval.c
@@ -189,7 +189,7 @@ static const char *keyval_parse_one(QDict *qdict, const
char *params,
QDict *cur;
int ret;
QObject *next;
- QString *val;
+ GString *val;
key = params;
val_end = NULL;
@@ -263,7 +263,7 @@ static const char *keyval_parse_one(QDict *qdict, const
char *params,
if (key == implied_key) {
assert(!*s);
- val = qstring_from_substr(params, 0, val_end - params);
+ val = g_string_new_len(params, val_end - params);
s = val_end;
if (*s == ',') {
s++;
@@ -276,7 +276,7 @@ static const char *keyval_parse_one(QDict *qdict, const
char *params,
}
s++;
- val = qstring_new();
+ val = g_string_new(NULL);
for (;;) {
if (!*s) {
break;
@@ -286,11 +286,12 @@ static const char *keyval_parse_one(QDict *qdict, const
char *params,
break;
}
}
- qstring_append_chr(val, *s++);
+ g_string_append_c(val, *s++);
}
}
- if (!keyval_parse_put(cur, key_in_cur, val, key, key_end, errp)) {
+ if (!keyval_parse_put(cur, key_in_cur, qstring_from_gstring(val),
+ key, key_end, errp)) {
return NULL;
}
return s;
--
2.26.2
- [PATCH 12/20] qobject: Drop qobject_get_try_str(), (continued)
- [PATCH 12/20] qobject: Drop qobject_get_try_str(), Markus Armbruster, 2020/12/11
- [PATCH 19/20] block: Use GString instead of QString to build filenames, Markus Armbruster, 2020/12/11
- [PATCH 09/20] qmp: Fix tracing of non-string command IDs, Markus Armbruster, 2020/12/11
- [PATCH 03/20] qobject: Make qobject_to_json_pretty() take a pretty argument, Markus Armbruster, 2020/12/11
- [PATCH 07/20] hw/rdma: Replace QList by GQueue, Markus Armbruster, 2020/12/11
- [PATCH 10/20] block: Avoid qobject_get_try_str(), Markus Armbruster, 2020/12/11
- [PATCH 15/20] qobject: Factor JSON writer out of qobject_to_json(), Markus Armbruster, 2020/12/11
- [PATCH 20/20] qobject: Make QString immutable, Markus Armbruster, 2020/12/11
- [PATCH 18/20] keyval: Use GString to accumulate value strings,
Markus Armbruster <=
- [PATCH 01/20] hmp: Simplify how qmp_human_monitor_command() gets output, Markus Armbruster, 2020/12/11
- [PATCH 11/20] Revert "qobject: let object_property_get_str() use new API", Markus Armbruster, 2020/12/11
- [PATCH 17/20] json: Use GString instead of QString to accumulate strings, Markus Armbruster, 2020/12/11
- [PATCH 13/20] qobject: Drop qstring_get_try_str(), Markus Armbruster, 2020/12/11
- [PATCH 16/20] migration: Replace migration's JSON writer by the general one, Markus Armbruster, 2020/12/11