g_string_append_printf should only be used when there is something to
format.

Signed-off-by: Maximiliano Sandoval <m.sando...@proxmox.com>
---

Some micro optimizations for GStrings usage.

The following script can be used to verify the claim that the replacements are 
drop-in:

```c
/* test.c */
#include <glib.h>

int
main () {
    GString *a = g_string_new ("Hello");
    GString *b = g_string_new ("Hello");

    g_string_append (a, "\n");
    g_string_append_c (b, '\n');
    g_assert_cmpstr (a->str, ==, b->str);

    g_string_printf (a, "{\n");
    g_string_assign (b, "{\n");
    g_assert_cmpstr (a->str, ==, b->str);

    g_string_append_printf (a, "\"data\": [\n");
    g_string_append (b, "\"data\": [\n");
    g_assert_cmpstr (a->str, ==, b->str);
}
```

which can be compiled with
```
cc `pkg-config --cflags glib-2.0` test.c -o test `pkg-config --libs glib-2.0`
```

assuming `libglib2.0-0` is installed.


 src/pmxcfs/logger.c | 12 ++++++------
 src/pmxcfs/status.c | 44 ++++++++++++++++++++++----------------------
 2 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/src/pmxcfs/logger.c b/src/pmxcfs/logger.c
index 3792650..0be4be6 100644
--- a/src/pmxcfs/logger.c
+++ b/src/pmxcfs/logger.c
@@ -163,9 +163,9 @@ clog_dump_json(
 
        uint32_t cpos = clog->cpos;
 
-       g_string_append_printf(str, "{\n");
+       g_string_append(str, "{\n");
 
-       g_string_append_printf(str, "\"data\": [\n");
+       g_string_append(str, "\"data\": [\n");
 
        guint count = 0;
        while (cpos && (cpos <= clog->cpos || cpos > (clog->cpos + 
CLOG_MAX_ENTRY_SIZE))) {
@@ -189,7 +189,7 @@ clog_dump_json(
                char *msg = tag + cur->tag_len;
 
                if (count)
-                       g_string_append_printf(str, ",\n");
+                       g_string_append(str, ",\n");
 
                g_string_append_printf(str, "{\"uid\": %u, \"time\": %u, 
\"pri\": %d, \"tag\": \"%s\", "
                                       "\"pid\": %u, \"node\": \"%s\", 
\"user\": \"%s\", "
@@ -201,10 +201,10 @@ clog_dump_json(
        }
 
        if (count)
-               g_string_append_printf(str, "\n");
+               g_string_append(str, "\n");
 
-       g_string_append_printf(str, "]\n");
-       g_string_append_printf(str, "}\n");
+       g_string_append(str, "]\n");
+       g_string_append(str, "}\n");
 
 }
 
diff --git a/src/pmxcfs/status.c b/src/pmxcfs/status.c
index ff5fcc4..e76c150 100644
--- a/src/pmxcfs/status.c
+++ b/src/pmxcfs/status.c
@@ -321,7 +321,7 @@ cfs_create_memberlist_msg(
 
        g_mutex_lock (&mutex);
 
-       g_string_append_printf(str,"{\n");
+       g_string_append(str, "{\n");
 
        guint nodecount = 0;
 
@@ -334,14 +334,14 @@ cfs_create_memberlist_msg(
                g_string_append_printf(str, "\"nodename\": \"%s\",\n", 
cfs.nodename);
                g_string_append_printf(str, "\"version\": %u,\n", 
cfs_status.clinfo_version);
 
-               g_string_append_printf(str, "\"cluster\": { ");
+               g_string_append(str, "\"cluster\": { ");
                g_string_append_printf(str, "\"name\": \"%s\", \"version\": %d, 
"
                                       "\"nodes\": %d, \"quorate\": %d ",
                                       clinfo->cluster_name, 
clinfo->cman_version,
                                       nodecount, cfs_status.quorate);
 
-               g_string_append_printf(str,"},\n");
-               g_string_append_printf(str,"\"nodelist\": {\n");
+               g_string_append(str, "},\n");
+               g_string_append(str, "\"nodelist\": {\n");
 
                GHashTable *ht = clinfo->nodes_byid;
                GHashTableIter iter;
@@ -352,7 +352,7 @@ cfs_create_memberlist_msg(
                int i = 0;
                while (g_hash_table_iter_next (&iter, &key, &value)) {
                        cfs_clnode_t *node = (cfs_clnode_t *)value;
-                       if (i) g_string_append_printf(str, ",\n");
+                       if (i) g_string_append(str, ",\n");
                        i++;
 
                        g_string_append_printf(str, "  \"%s\": { \"id\": %d, 
\"online\": %d",
@@ -364,16 +364,16 @@ cfs_create_memberlist_msg(
                                g_string_append_printf(str, ", \"ip\": \"%s\"", 
ip);
                        }
 
-                       g_string_append_printf(str, "}");
+                       g_string_append(str, "}");
 
                }
-               g_string_append_printf(str,"\n  }\n");
+               g_string_append(str, "\n  }\n");
        } else {
                g_string_append_printf(str, "\"nodename\": \"%s\",\n", 
cfs.nodename);
                g_string_append_printf(str, "\"version\": %u\n", 
cfs_status.clinfo_version);
        }
 
-       g_string_append_printf(str,"}\n");
+       g_string_append(str, "}\n");
 
        g_mutex_unlock (&mutex);
 
@@ -570,12 +570,12 @@ dump_kvstore_versions(
        int i = 0;
        while (g_hash_table_iter_next (&iter, &key, &value)) {
                kventry_t *entry = (kventry_t *)value;
-               if (i) g_string_append_printf(str, ",\n");
+               if (i) g_string_append(str, ",\n");
                i++;
                g_string_append_printf(str,"\"%s\": %u", entry->key, 
entry->version);
        }
 
-       g_string_append_printf(str, "}\n");
+       g_string_append(str, "}\n");
 }
 
 int
@@ -585,7 +585,7 @@ cfs_create_version_msg(GString *str)
 
        g_mutex_lock (&mutex);
 
-       g_string_append_printf(str,"{\n");
+       g_string_append(str, "{\n");
 
        g_string_append_printf(str, "\"starttime\": %lu,\n", (unsigned 
long)cfs_status.start_time);
 
@@ -599,7 +599,7 @@ cfs_create_version_msg(GString *str)
                                       memdb_change_array[i].version);
        }
 
-       g_string_append_printf(str, "\"kvstore\": {\n");
+       g_string_append(str, "\"kvstore\": {\n");
 
        dump_kvstore_versions(str, cfs_status.kvhash, cfs.nodename);
 
@@ -616,14 +616,14 @@ cfs_create_version_msg(GString *str)
                        cfs_clnode_t *node = (cfs_clnode_t *)value;
                        if (!node->kvhash)
                                continue;
-                       g_string_append_printf(str, ",\n");
+                       g_string_append(str, ",\n");
                        dump_kvstore_versions(str, node->kvhash, node->name);
                }
        }
 
-       g_string_append_printf(str,"}\n");
+       g_string_append(str, "}\n");
 
-       g_string_append_printf(str,"}\n");
+       g_string_append(str, "}\n");
 
        g_mutex_unlock (&mutex);
 
@@ -774,7 +774,7 @@ cfs_create_vmlist_msg(GString *str)
 
        g_mutex_lock (&mutex);
 
-       g_string_append_printf(str,"{\n");
+       g_string_append(str, "{\n");
 
        GHashTable *ht = cfs_status.vmlist;
 
@@ -785,7 +785,7 @@ cfs_create_vmlist_msg(GString *str)
        } else {
                g_string_append_printf(str,"\"version\": %u,\n", 
cfs_status.vmlist_version);
 
-               g_string_append_printf(str,"\"ids\": {\n");
+               g_string_append(str, "\"ids\": {\n");
 
                GHashTableIter iter;
                gpointer key, value;
@@ -798,16 +798,16 @@ cfs_create_vmlist_msg(GString *str)
                        const char *type = vminfo_type_to_string(vminfo);
 
                        if (!first)
-                               g_string_append_printf(str, ",\n");
+                               g_string_append(str, ",\n");
                        first = 0;
 
                        g_string_append_printf(str,"\"%u\": { \"node\": \"%s\", 
\"type\": \"%s\", \"version\": %u }",
                                               vminfo->vmid, vminfo->nodename, 
type, vminfo->version);
                }
 
-               g_string_append_printf(str,"}\n");
+               g_string_append(str, "}\n");
        }
-       g_string_append_printf(str,"\n}\n");
+       g_string_append(str, "\n}\n");
 
        g_mutex_unlock (&mutex);
 
@@ -945,7 +945,7 @@ _print_found_properties(
                        g_string_append_c(str, ',');
                } else {
                        if (!first) {
-                               g_string_append_printf(str, ",\n");
+                               g_string_append(str, ",\n");
                        } else {
                                first = 0;
                        }
@@ -1056,7 +1056,7 @@ ret:
        if (path != NULL) {
                g_string_free(path, TRUE);
        }
-       g_string_append_printf(str,"\n}\n");
+       g_string_append(str, "\n}\n");
        g_mutex_unlock (&mutex);
        g_mutex_unlock (&memdb->mutex);
        return res;
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to