mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
qjson: Inline token_is_keyword() and simplify
Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1448486613-17634-7-git-send-email-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
c54616608a
commit
50e2a467f5
@ -63,15 +63,6 @@ static JSONTokenType token_get_type(QObject *obj)
|
||||
return qdict_get_int(qobject_to_qdict(obj), "type");
|
||||
}
|
||||
|
||||
static int token_is_keyword(QObject *obj, const char *value)
|
||||
{
|
||||
if (token_get_type(obj) != JSON_KEYWORD) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return strcmp(token_get_value(obj), value) == 0;
|
||||
}
|
||||
|
||||
static int token_is_escape(QObject *obj, const char *value)
|
||||
{
|
||||
if (token_get_type(obj) != JSON_ESCAPE) {
|
||||
@ -533,6 +524,7 @@ static QObject *parse_keyword(JSONParserContext *ctxt)
|
||||
{
|
||||
QObject *token, *ret;
|
||||
JSONParserContext saved_ctxt = parser_context_save(ctxt);
|
||||
const char *val;
|
||||
|
||||
token = parser_context_pop_token(ctxt);
|
||||
if (token == NULL) {
|
||||
@ -543,14 +535,16 @@ static QObject *parse_keyword(JSONParserContext *ctxt)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (token_is_keyword(token, "true")) {
|
||||
val = token_get_value(token);
|
||||
|
||||
if (!strcmp(val, "true")) {
|
||||
ret = QOBJECT(qbool_from_bool(true));
|
||||
} else if (token_is_keyword(token, "false")) {
|
||||
} else if (!strcmp(val, "false")) {
|
||||
ret = QOBJECT(qbool_from_bool(false));
|
||||
} else if (token_is_keyword(token, "null")) {
|
||||
} else if (!strcmp(val, "null")) {
|
||||
ret = qnull();
|
||||
} else {
|
||||
parse_error(ctxt, token, "invalid keyword `%s'", token_get_value(token));
|
||||
parse_error(ctxt, token, "invalid keyword '%s'", val);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user