@@ -143,39 +143,39 @@ static QString *qstring_from_escaped_str(JSONParserContext *ctxt,
switch (*ptr) {
case '"':
- qstring_append(str, "\"");
+ qstring_append_chr(str, '"');
ptr++;
break;
case '\'':
- qstring_append(str, "'");
+ qstring_append_chr(str, '\'');
ptr++;
break;
case '\\':
- qstring_append(str, "\\");
+ qstring_append_chr(str, '\\');
ptr++;
break;
case '/':
- qstring_append(str, "/");
+ qstring_append_chr(str, '/');
ptr++;
break;
case 'b':
- qstring_append(str, "\b");
+ qstring_append_chr(str, '\b');
ptr++;
break;
case 'f':
- qstring_append(str, "\f");
+ qstring_append_chr(str, '\f');
ptr++;
break;
case 'n':
- qstring_append(str, "\n");
+ qstring_append_chr(str, '\n');
ptr++;
break;
case 'r':
- qstring_append(str, "\r");
+ qstring_append_chr(str, '\r');
ptr++;
break;
case 't':
- qstring_append(str, "\t");
+ qstring_append_chr(str, '\t');
ptr++;
break;
case 'u': {
@@ -204,12 +204,7 @@ static QString *qstring_from_escaped_str(JSONParserContext *ctxt,
goto out;
}
} else {
- char dummy[2];
-
- dummy[0] = *ptr++;
- dummy[1] = 0;
-
- qstring_append(str, dummy);
+ qstring_append_chr(str, *ptr++);
}
}
@@ -140,12 +140,12 @@ static void to_json(const QObject *obj, QString *str, int pretty, int indent)
s.str = str;
s.indent = indent + 1;
s.pretty = pretty;
- qstring_append(str, "{");
+ qstring_append_chr(str, '{');
qdict_iter(val, to_json_dict_iter, &s);
if (pretty) {
qstring_append_printf(str, "\n%*s", 4 * indent, "");
}
- qstring_append(str, "}");
+ qstring_append_chr(str, '}');
break;
}
case QTYPE_QLIST: {
@@ -156,12 +156,12 @@ static void to_json(const QObject *obj, QString *str, int pretty, int indent)
s.str = str;
s.indent = indent + 1;
s.pretty = pretty;
- qstring_append(str, "[");
+ qstring_append_chr(str, '[');
qlist_iter(val, (void *)to_json_list_iter, &s);
if (pretty) {
qstring_append_printf(str, "\n%*s", 4 * indent, "");
}
- qstring_append(str, "]");
+ qstring_append_chr(str, ']');
break;
}
case QTYPE_QFLOAT: {
@@ -217,7 +217,7 @@ int qstring_append_json_string(QString *qstring, const char *str)
char *end;
int result = 0;
- qstring_append(qstring, "\"");
+ qstring_append_chr(qstring, '"');
for (ptr = str; *ptr; ptr = end) {
cp = mod_utf8_codepoint(ptr, 6, &end);
@@ -261,7 +261,7 @@ int qstring_append_json_string(QString *qstring, const char *str)
}
};
- qstring_append(qstring, "\"");
+ qstring_append_chr(qstring, '"');
return result;
}
qstring_append_chr() is more efficient than qstring_append() when dealing with a one-byte string (including the case of a temporary 2-byte buffer just for creating a dynamic one-byte string). Signed-off-by: Eric Blake <eblake@redhat.com> --- v4: also convert qstring_append() of one-byte strings v3: no change v2: no change --- qobject/json-parser.c | 25 ++++++++++--------------- qobject/qobject-json.c | 12 ++++++------ 2 files changed, 16 insertions(+), 21 deletions(-)