qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v6 06/15] qapi: Use qstring_append_chr() where appro


From: Eric Blake
Subject: [Qemu-devel] [PATCH v6 06/15] qapi: Use qstring_append_chr() where appropriate
Date: Mon, 10 Oct 2016 08:23:48 -0500

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>

---
v6: no change
[no v5 due to series split]
v4: also convert qstring_append() of one-byte strings
v3: no change
v2: no change
---
 qobject/json-parser.c | 25 ++++++++++---------------
 qobject/qjson.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/qjson.c b/qobject/qjson.c
index 7dc694c..a705aba 100644
--- a/qobject/qjson.c
+++ b/qobject/qjson.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: {
@@ -218,7 +218,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);
@@ -262,7 +262,7 @@ int qstring_append_json_string(QString *qstring, const char 
*str)
         }
     };

-    qstring_append(qstring, "\"");
+    qstring_append_chr(qstring, '"');
     return result;
 }

-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]