--- parser3/src/lib/json/pa_json.C 2013/07/29 10:06:38 1.2 +++ parser3/src/lib/json/pa_json.C 2013/07/29 14:33:57 1.7 @@ -264,7 +264,7 @@ static int state_grow(json_parser *parse ptr = parser_realloc(parser, parser->stack, newsize * sizeof(uint8_t)); if (!ptr) return JSON_ERROR_NO_MEMORY; - parser->stack = (uint8_t*)ptr; + parser->stack = ptr; parser->stack_size = newsize; return 0; } @@ -305,7 +305,7 @@ static int buffer_grow(json_parser *pars ptr = parser_realloc(parser, parser->buffer, newsize * sizeof(char)); if (!ptr) return JSON_ERROR_NO_MEMORY; - parser->buffer = (char *)ptr; + parser->buffer = ptr; parser->buffer_size = newsize; return 0; } @@ -380,7 +380,7 @@ static int decode_unicode_char(json_pars { uint32_t uval; char *b = parser->buffer; - int offset = parser->buffer_offset; + uint32_t offset = parser->buffer_offset; uval = (hex(b[offset - 4]) << 12) | (hex(b[offset - 3]) << 8) | (hex(b[offset - 2]) << 4) | hex(b[offset - 1]); @@ -409,7 +409,7 @@ static int decode_unicode_char(json_pars if (IS_LOW_SURROGATE(uval)) return JSON_ERROR_UNICODE_UNEXPECTED_LOW_SURROGATE; if (IS_HIGH_SURROGATE(uval)) { - parser->unicode_multi = uval; + parser->unicode_multi = (uint16_t)uval; return 0; } @@ -442,7 +442,7 @@ static int buffer_push_escape(json_parse return buffer_push(parser, c); } -#define CHK(f) ({ ret = f; if (ret) return ret; }) +#define CHK(f) { ret = f; if (ret) return ret; } int act_uc(json_parser *parser) { @@ -538,28 +538,28 @@ struct action_descr }; static struct action_descr actions_map[] = { - [STATE_MX & ~0x80] = { NULL, JSON_INT, STATE_M0, 0 }, - [STATE_ZX & ~0x80] = { NULL, JSON_INT, STATE_Z0, 0 }, - [STATE_IX & ~0x80] = { NULL, JSON_INT, STATE_I0, 0 }, - [STATE_DE & ~0x80] = { NULL, JSON_FLOAT, STATE_X1, 0 }, - [STATE_DF & ~0x80] = { NULL, JSON_FLOAT, STATE_R1, 0 }, - [STATE_NU & ~0x80] = { NULL, JSON_NULL, STATE_OK, 0 }, - [STATE_FA & ~0x80] = { NULL, JSON_FALSE, STATE_OK, 0 }, - [STATE_TR & ~0x80] = { NULL, JSON_TRUE, STATE_OK, 0 }, - [STATE_KS & ~0x80] = { NULL, JSON_NONE, STATE__V, 0 }, - [STATE_UC & ~0x80] = { act_uc, JSON_NONE, 0, 0 }, - [STATE_YB & ~0x80] = { act_yb, JSON_NONE, STATE_Y1, 1 }, - [STATE_CB & ~0x80] = { act_cb, JSON_NONE, STATE_C1, 1 }, - [STATE_CE & ~0x80] = { act_ce, JSON_NONE, 0, 0 }, - [STATE_OB & ~0x80] = { act_ob, JSON_NONE, STATE__O, 0 }, - [STATE_OE & ~0x80] = { act_oe, JSON_NONE, STATE_OK, 1 }, - [STATE_AB & ~0x80] = { act_ab, JSON_NONE, STATE__A, 0 }, - [STATE_AE & ~0x80] = { act_ae, JSON_NONE, STATE_OK, 1 }, - [STATE_SE & ~0x80] = { act_se, JSON_NONE, 0, 0 }, - [STATE_SP & ~0x80] = { act_sp, JSON_NONE, 0, 1 }, + { NULL, JSON_NONE, STATE__V, 0 }, // STATE_KS + { act_sp, JSON_NONE, 0, 1 }, // STATE_SP + { act_ab, JSON_NONE, STATE__A, 0 }, // STATE_AB + { act_ae, JSON_NONE, STATE_OK, 1 }, // STATE_AE + { act_ob, JSON_NONE, STATE__O, 0 }, // STATE_OB + { act_oe, JSON_NONE, STATE_OK, 1 }, // STATE_OE + { act_cb, JSON_NONE, STATE_C1, 1 }, // STATE_CB + { act_yb, JSON_NONE, STATE_Y1, 1 }, // STATE_YB + { act_ce, JSON_NONE, 0, 0 }, // STATE_CE + { NULL, JSON_FALSE, STATE_OK, 0 }, // STATE_FA + { NULL, JSON_TRUE, STATE_OK, 0 }, // STATE_TR + { NULL, JSON_NULL, STATE_OK, 0 }, // STATE_NU + { NULL, JSON_FLOAT, STATE_X1, 0 }, // STATE_DE + { NULL, JSON_FLOAT, STATE_R1, 0 }, // STATE_DF + { act_se, JSON_NONE, 0, 0 }, // STATE_SE + { NULL, JSON_INT, STATE_M0, 0 }, // STATE_MX + { NULL, JSON_INT, STATE_Z0, 0 }, // STATE_ZX + { NULL, JSON_INT, STATE_I0, 0 }, // STATE_IX + { act_uc, JSON_NONE, 0, 0 } // STATE_UC }; -static int do_action(json_parser *parser, int next_state) +static int do_action(json_parser *parser, uint8_t next_state) { struct action_descr *descr = &actions_map[next_state & ~0x80]; @@ -645,8 +645,8 @@ int json_parser_string(json_parser *pars uint32_t length, uint32_t *processed) { int ret; - int next_class, next_state; - int buffer_policy; + uint8_t next_class, next_state; + uint32_t buffer_policy; uint32_t i; ret = 0;