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 <arm...@redhat.com>
Reviewed-by: Eric Blake <ebl...@redhat.com>
---
['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