blobmsg: Don't do at run-time what can be done at compile-time
authorPhilip Prindeville <philipp@redfish-solutions.com>
Fri, 14 Apr 2023 18:37:06 +0000 (12:37 -0600)
committerAlexander Couzens <lynxis@fe80.eu>
Sun, 16 Apr 2023 12:53:11 +0000 (14:53 +0200)
Repeatedly calling a run-time function like strlen() on an
invariant value is inefficient, especially if that value can be
computed once (at initialization) or better yet, computed at
compile-time.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
blobmsg_json.c

index dce81e991ef7b83ac4906bca6f875369d3057f36..ec8b482c30c96a355aca58651632bc509a16bedf 100644 (file)
@@ -151,15 +151,15 @@ static bool blobmsg_puts(struct strbuf *s, const char *c, int len)
 
 static void add_separator(struct strbuf *s)
 {
-       const char *indent_chars = "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
+       const char indent_chars[] = "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
        size_t len;
 
        if (!s->indent)
                return;
 
        len = s->indent_level + 1;
-       if (len > strlen(indent_chars))
-               len = strlen(indent_chars);
+       if (len > sizeof(indent_chars) - 1)
+               len = sizeof(indent_chars) - 1;
 
        blobmsg_puts(s, indent_chars, len);
 }