Style and micro-optimizations in JSON parsing.

This commit is contained in:
Valentin Bartenev
2017-04-10 23:04:34 +03:00
parent 3d9be969e7
commit b01865c023

View File

@@ -279,11 +279,13 @@ nxt_conf_json_parse_object(u_char *pos, u_char *end,
nxt_lvlhsh_t *object; nxt_lvlhsh_t *object;
nxt_conf_json_obj_member_t *member; nxt_conf_json_obj_member_t *member;
object = nxt_mem_zalloc(pool, sizeof(nxt_lvlhsh_t)); object = nxt_mem_alloc(pool, sizeof(nxt_lvlhsh_t));
if (nxt_slow_path(object == NULL)) { if (nxt_slow_path(object == NULL)) {
return NULL; return NULL;
} }
nxt_lvlhsh_init(object);
value->type = NXT_CONF_JSON_OBJECT; value->type = NXT_CONF_JSON_OBJECT;
value->u.object = object; value->u.object = object;
@@ -365,7 +367,7 @@ static u_char *
nxt_conf_json_parse_array(u_char *pos, u_char *end, nxt_conf_json_parse_array(u_char *pos, u_char *end,
nxt_conf_json_value_t *value, nxt_mem_pool_t *pool) nxt_conf_json_value_t *value, nxt_mem_pool_t *pool)
{ {
nxt_array_t *array; nxt_array_t *array;
array = nxt_array_create(pool, 8, sizeof(nxt_conf_json_value_t)); array = nxt_array_create(pool, 8, sizeof(nxt_conf_json_value_t));
if (nxt_slow_path(array == NULL)) { if (nxt_slow_path(array == NULL)) {
@@ -471,11 +473,11 @@ nxt_conf_json_parse_string(u_char *pos, u_char *end,
case '"': case '"':
case '\\': case '\\':
case '/': case '/':
case 'b':
case 'f':
case 'n': case 'n':
case 'r': case 'r':
case 't': case 't':
case 'b':
case 'f':
surplus++; surplus++;
state = sw_usual; state = sw_usual;
continue; continue;
@@ -558,14 +560,6 @@ nxt_conf_json_parse_string(u_char *pos, u_char *end,
*s++ = ch; *s++ = ch;
continue; continue;
case 'b':
*s++ = '\b';
continue;
case 'f':
*s++ = '\f';
continue;
case 'n': case 'n':
*s++ = '\n'; *s++ = '\n';
continue; continue;
@@ -577,6 +571,14 @@ nxt_conf_json_parse_string(u_char *pos, u_char *end,
case 't': case 't':
*s++ = '\t'; *s++ = '\t';
continue; continue;
case 'b':
*s++ = '\b';
continue;
case 'f':
*s++ = '\f';
continue;
} }
utf = 0; utf = 0;