qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 52/60] json: Eliminate lexer state IN_WHITESP


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v2 52/60] json: Eliminate lexer state IN_WHITESPACE, pseudo-token JSON_SKIP
Date: Fri, 17 Aug 2018 11:07:35 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 08/17/2018 10:05 AM, Markus Armbruster wrote:
Bonus: static json_lexer[] loses its unused elements.  It shrinks from
8KiB to 4.75KiB for me.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---

          ['a' ... 'z'] = IN_KEYWORD,
-        [' '] = IN_WHITESPACE,
-        ['\t'] = IN_WHITESPACE,
-        ['\r'] = IN_WHITESPACE,
-        ['\n'] = IN_WHITESPACE,
+        [' '] = IN_START,
+        ['\t'] = IN_START,
+        ['\r'] = IN_START,
+        ['\n'] = IN_START,
      },
      [IN_START_INTERPOL]['%'] = IN_INTERPOL,
+    [IN_START_INTERPOL][' '] = IN_START_INTERPOL,
+    [IN_START_INTERPOL]['\t'] = IN_START_INTERPOL,
+    [IN_START_INTERPOL]['\r'] = IN_START_INTERPOL,
+    [IN_START_INTERPOL]['\n'] = IN_START_INTERPOL,

Hmm, if we did this:

[IN_START_INTERPOL] {
  ['%'] = IN_INTERPOL,
  ['\t'] = IN_START_INTERPOL,
...
}

for similarity with all our other constructs, will gcc remember that we've already initialized other members not listed in the clause before, or will it mistakenly re-0-initialize the array members not mentioned?

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



reply via email to

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