diff options
author | Markus Armbruster <armbru@redhat.com> | 2018-08-23 18:40:00 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2018-08-24 20:26:37 +0200 |
commit | 037f2440888a22bd00ea0d8e37a1b7ed7d2bba88 (patch) | |
tree | b0e02a19af0e29b8dd7bee52195aebef7844174a /include/qapi | |
parent | e8b19d7d7300366a1dd85273512657bbeab564ab (diff) | |
download | qemu-037f2440888a22bd00ea0d8e37a1b7ed7d2bba88.zip qemu-037f2440888a22bd00ea0d8e37a1b7ed7d2bba88.tar.gz qemu-037f2440888a22bd00ea0d8e37a1b7ed7d2bba88.tar.bz2 |
json: Have lexer call streamer directly
json_lexer_init() takes the function to process a token as an
argument. It's always json_message_process_token(). Makes the code
harder to understand for no actual gain. Drop the indirection.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180823164025.12553-34-armbru@redhat.com>
Diffstat (limited to 'include/qapi')
-rw-r--r-- | include/qapi/qmp/json-lexer.h | 13 | ||||
-rw-r--r-- | include/qapi/qmp/json-streamer.h | 3 |
2 files changed, 6 insertions, 10 deletions
diff --git a/include/qapi/qmp/json-lexer.h b/include/qapi/qmp/json-lexer.h index 66ccf03..44bcf2c 100644 --- a/include/qapi/qmp/json-lexer.h +++ b/include/qapi/qmp/json-lexer.h @@ -32,20 +32,13 @@ typedef enum json_token_type { JSON_ERROR, } JSONTokenType; -typedef struct JSONLexer JSONLexer; - -typedef void (JSONLexerEmitter)(JSONLexer *, GString *, - JSONTokenType, int x, int y); - -struct JSONLexer -{ - JSONLexerEmitter *emit; +typedef struct JSONLexer { int state; GString *token; int x, y; -}; +} JSONLexer; -void json_lexer_init(JSONLexer *lexer, JSONLexerEmitter func); +void json_lexer_init(JSONLexer *lexer); void json_lexer_feed(JSONLexer *lexer, const char *buffer, size_t size); diff --git a/include/qapi/qmp/json-streamer.h b/include/qapi/qmp/json-streamer.h index cb808cf..7922e18 100644 --- a/include/qapi/qmp/json-streamer.h +++ b/include/qapi/qmp/json-streamer.h @@ -33,6 +33,9 @@ typedef struct JSONMessageParser uint64_t token_size; } JSONMessageParser; +void json_message_process_token(JSONLexer *lexer, GString *input, + JSONTokenType type, int x, int y); + void json_message_parser_init(JSONMessageParser *parser, void (*func)(JSONMessageParser *, GQueue *)); |