[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 19/28] qapi: Use qstring_append_chr() where appro
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH v4 19/28] qapi: Use qstring_append_chr() where appropriate |
Date: |
Wed, 18 May 2016 22:41:05 -0600 |
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 <address@hidden>
---
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(-)
diff --git a/qobject/json-parser.c b/qobject/json-parser.c
index c18e48a..5c23740 100644
--- a/qobject/json-parser.c
+++ b/qobject/json-parser.c
@@ -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++);
}
}
diff --git a/qobject/qobject-json.c b/qobject/qobject-json.c
index 769816d..95de587 100644
--- a/qobject/qobject-json.c
+++ b/qobject/qobject-json.c
@@ -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;
}
--
2.5.5
- [Qemu-devel] [PATCH v4 23/28] tests: Test qobject_to_json() pretty formatting, (continued)
- [Qemu-devel] [PATCH v4 23/28] tests: Test qobject_to_json() pretty formatting, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 13/28] qapi: Add new clone visitor, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 18/28] qapi: Add qstring_append_printf(), Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 25/28] qapi: Support pretty printing in JSON output visitor, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 26/28] qobject: Implement qobject_to_json() atop JSON visitor, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 27/28] qapi: Add 'any' support to JSON output, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 20/28] qstring: Add qstring_consume_str(), Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 24/28] qapi: Add JSON output visitor, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 22/28] qobject: Consolidate qobject_to_json() calls, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 28/28] qemu-img: Use new JSON output formatter, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 19/28] qapi: Use qstring_append_chr() where appropriate,
Eric Blake <=
- [Qemu-devel] [PATCH v4 12/28] qapi: Add new visit_complete() function, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 21/28] qstring: Add qstring_wrap_str(), Eric Blake, 2016/05/19
- Re: [Qemu-devel] [PATCH v4 00/28] Add qapi-to-JSON and clone visitors, Eric Blake, 2016/05/19
- [Qemu-devel] [PATCH v4 29/28] qapi: Add strict mode to JSON output visitor, Eric Blake, 2016/05/19
- Re: [Qemu-devel] [PATCH v4 00/28] Add qapi-to-JSON and clone visitors, Markus Armbruster, 2016/05/19