diff options
author | Vijay Pai <vpai@google.com> | 2016-01-11 10:08:26 -0800 |
---|---|---|
committer | Vijay Pai <vpai@google.com> | 2016-01-11 10:08:26 -0800 |
commit | 6045681003bef90de4d58952474893cfb56741e4 (patch) | |
tree | ff0e1b5150c7a27d88ea7eab82acc6d95bc30c0a /src/core/json | |
parent | 78268212bae4e745606108beeeff317af393e033 (diff) | |
parent | 7f34c783c4735ce16c22cd4c92d989d4bb0e2822 (diff) |
Merge branch 'master' into bbuf
Diffstat (limited to 'src/core/json')
-rw-r--r-- | src/core/json/json_reader.c | 23 | ||||
-rw-r--r-- | src/core/json/json_reader.h | 8 | ||||
-rw-r--r-- | src/core/json/json_string.c | 38 | ||||
-rw-r--r-- | src/core/json/json_writer.c | 16 |
4 files changed, 41 insertions, 44 deletions
diff --git a/src/core/json/json_reader.c b/src/core/json/json_reader.c index 256995240a..30da6f28f3 100644 --- a/src/core/json/json_reader.c +++ b/src/core/json/json_reader.c @@ -43,17 +43,16 @@ static void json_reader_string_clear(grpc_json_reader *reader) { reader->vtable->string_clear(reader->userdata); } -static void json_reader_string_add_char(grpc_json_reader *reader, - gpr_uint32 c) { +static void json_reader_string_add_char(grpc_json_reader *reader, uint32_t c) { reader->vtable->string_add_char(reader->userdata, c); } static void json_reader_string_add_utf32(grpc_json_reader *reader, - gpr_uint32 utf32) { + uint32_t utf32) { reader->vtable->string_add_utf32(reader->userdata, utf32); } -static gpr_uint32 grpc_json_reader_read_char(grpc_json_reader *reader) { +static uint32_t grpc_json_reader_read_char(grpc_json_reader *reader) { return reader->vtable->read_char(reader->userdata); } @@ -108,7 +107,7 @@ int grpc_json_reader_is_complete(grpc_json_reader *reader) { } grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { - gpr_uint32 c, success; + uint32_t c, success; /* This state-machine is a strict implementation of ECMA-404 */ for (;;) { @@ -154,7 +153,7 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL: case GRPC_JSON_STATE_VALUE_NUMBER_ZERO: case GRPC_JSON_STATE_VALUE_NUMBER_EPM: - success = (gpr_uint32)json_reader_set_number(reader); + success = (uint32_t)json_reader_set_number(reader); if (!success) return GRPC_JSON_PARSE_ERROR; json_reader_string_clear(reader); reader->state = GRPC_JSON_STATE_VALUE_END; @@ -181,7 +180,7 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL: case GRPC_JSON_STATE_VALUE_NUMBER_ZERO: case GRPC_JSON_STATE_VALUE_NUMBER_EPM: - success = (gpr_uint32)json_reader_set_number(reader); + success = (uint32_t)json_reader_set_number(reader); if (!success) return GRPC_JSON_PARSE_ERROR; json_reader_string_clear(reader); reader->state = GRPC_JSON_STATE_VALUE_END; @@ -416,8 +415,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { } else { return GRPC_JSON_PARSE_ERROR; } - reader->unicode_char = (gpr_uint16)(reader->unicode_char << 4); - reader->unicode_char = (gpr_uint16)(reader->unicode_char | c); + reader->unicode_char = (uint16_t)(reader->unicode_char << 4); + reader->unicode_char = (uint16_t)(reader->unicode_char | c); switch (reader->state) { case GRPC_JSON_STATE_STRING_ESCAPE_U1: @@ -440,13 +439,13 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) { reader->unicode_high_surrogate = reader->unicode_char; } else if ((reader->unicode_char & 0xfc00) == 0xdc00) { /* low surrogate utf-16 */ - gpr_uint32 utf32; + uint32_t utf32; if (reader->unicode_high_surrogate == 0) return GRPC_JSON_PARSE_ERROR; utf32 = 0x10000; - utf32 += (gpr_uint32)( + utf32 += (uint32_t)( (reader->unicode_high_surrogate - 0xd800) * 0x400); - utf32 += (gpr_uint32)(reader->unicode_char - 0xdc00); + utf32 += (uint32_t)(reader->unicode_char - 0xdc00); json_reader_string_add_utf32(reader, utf32); reader->unicode_high_surrogate = 0; } else { diff --git a/src/core/json/json_reader.h b/src/core/json/json_reader.h index 417db110cf..90b9f1f9fe 100644 --- a/src/core/json/json_reader.h +++ b/src/core/json/json_reader.h @@ -84,11 +84,11 @@ typedef struct grpc_json_reader_vtable { /* Clears your internal string scratchpad. */ void (*string_clear)(void *userdata); /* Adds a char to the string scratchpad. */ - void (*string_add_char)(void *userdata, gpr_uint32 c); + void (*string_add_char)(void *userdata, uint32_t c); /* Adds a utf32 char to the string scratchpad. */ - void (*string_add_utf32)(void *userdata, gpr_uint32 c); + void (*string_add_utf32)(void *userdata, uint32_t c); /* Reads a character from your input. May be utf-8, 16 or 32. */ - gpr_uint32 (*read_char)(void *userdata); + uint32_t (*read_char)(void *userdata); /* Starts a container of type GRPC_JSON_ARRAY or GRPC_JSON_OBJECT. */ void (*container_begins)(void *userdata, grpc_json_type type); /* Ends the current container. Must return the type of its parent. */ @@ -117,7 +117,7 @@ typedef struct grpc_json_reader { int in_array; int escaped_string_was_key; int container_just_begun; - gpr_uint16 unicode_char, unicode_high_surrogate; + uint16_t unicode_char, unicode_high_surrogate; grpc_json_reader_state state; } grpc_json_reader; diff --git a/src/core/json/json_string.c b/src/core/json/json_string.c index 06c157dc98..2bc0b513d5 100644 --- a/src/core/json/json_string.c +++ b/src/core/json/json_string.c @@ -56,10 +56,10 @@ typedef struct { grpc_json *top; grpc_json *current_container; grpc_json *current_value; - gpr_uint8 *input; - gpr_uint8 *key; - gpr_uint8 *string; - gpr_uint8 *string_ptr; + uint8_t *input; + uint8_t *key; + uint8_t *string; + uint8_t *string_ptr; size_t remaining_input; } json_reader_userdata; @@ -122,36 +122,36 @@ static void json_reader_string_clear(void *userdata) { state->string = state->string_ptr; } -static void json_reader_string_add_char(void *userdata, gpr_uint32 c) { +static void json_reader_string_add_char(void *userdata, uint32_t c) { json_reader_userdata *state = userdata; GPR_ASSERT(state->string_ptr < state->input); GPR_ASSERT(c <= 0xff); - *state->string_ptr++ = (gpr_uint8)c; + *state->string_ptr++ = (uint8_t)c; } /* We are converting a UTF-32 character into UTF-8 here, * as described by RFC3629. */ -static void json_reader_string_add_utf32(void *userdata, gpr_uint32 c) { +static void json_reader_string_add_utf32(void *userdata, uint32_t c) { if (c <= 0x7f) { json_reader_string_add_char(userdata, c); } else if (c <= 0x7ff) { - gpr_uint32 b1 = 0xc0 | ((c >> 6) & 0x1f); - gpr_uint32 b2 = 0x80 | (c & 0x3f); + uint32_t b1 = 0xc0 | ((c >> 6) & 0x1f); + uint32_t b2 = 0x80 | (c & 0x3f); json_reader_string_add_char(userdata, b1); json_reader_string_add_char(userdata, b2); } else if (c <= 0xffff) { - gpr_uint32 b1 = 0xe0 | ((c >> 12) & 0x0f); - gpr_uint32 b2 = 0x80 | ((c >> 6) & 0x3f); - gpr_uint32 b3 = 0x80 | (c & 0x3f); + uint32_t b1 = 0xe0 | ((c >> 12) & 0x0f); + uint32_t b2 = 0x80 | ((c >> 6) & 0x3f); + uint32_t b3 = 0x80 | (c & 0x3f); json_reader_string_add_char(userdata, b1); json_reader_string_add_char(userdata, b2); json_reader_string_add_char(userdata, b3); } else if (c <= 0x1fffff) { - gpr_uint32 b1 = 0xf0 | ((c >> 18) & 0x07); - gpr_uint32 b2 = 0x80 | ((c >> 12) & 0x3f); - gpr_uint32 b3 = 0x80 | ((c >> 6) & 0x3f); - gpr_uint32 b4 = 0x80 | (c & 0x3f); + uint32_t b1 = 0xf0 | ((c >> 18) & 0x07); + uint32_t b2 = 0x80 | ((c >> 12) & 0x3f); + uint32_t b3 = 0x80 | ((c >> 6) & 0x3f); + uint32_t b4 = 0x80 | (c & 0x3f); json_reader_string_add_char(userdata, b1); json_reader_string_add_char(userdata, b2); json_reader_string_add_char(userdata, b3); @@ -162,8 +162,8 @@ static void json_reader_string_add_utf32(void *userdata, gpr_uint32 c) { /* We consider that the input may be a zero-terminated string. So we * can end up hitting eof before the end of the alleged string length. */ -static gpr_uint32 json_reader_read_char(void *userdata) { - gpr_uint32 r; +static uint32_t json_reader_read_char(void *userdata) { + uint32_t r; json_reader_userdata *state = userdata; if (state->remaining_input == 0) return GRPC_JSON_READ_CHAR_EOF; @@ -302,7 +302,7 @@ grpc_json *grpc_json_parse_string_with_len(char *input, size_t size) { state.top = state.current_container = state.current_value = NULL; state.string = state.key = NULL; - state.string_ptr = state.input = (gpr_uint8 *)input; + state.string_ptr = state.input = (uint8_t *)input; state.remaining_input = size; grpc_json_reader_init(&reader, &reader_vtable, &state); diff --git a/src/core/json/json_writer.c b/src/core/json/json_writer.c index e0d02f411e..326ec2d431 100644 --- a/src/core/json/json_writer.c +++ b/src/core/json/json_writer.c @@ -100,8 +100,7 @@ static void json_writer_value_end(grpc_json_writer *writer) { } } -static void json_writer_escape_utf16(grpc_json_writer *writer, - gpr_uint16 utf16) { +static void json_writer_escape_utf16(grpc_json_writer *writer, uint16_t utf16) { static const char hex[] = "0123456789abcdef"; json_writer_output_string_with_len(writer, "\\u", 2); @@ -116,7 +115,7 @@ static void json_writer_escape_string(grpc_json_writer *writer, json_writer_output_char(writer, '"'); for (;;) { - gpr_uint8 c = (gpr_uint8)*string++; + uint8_t c = (uint8_t)*string++; if (c == 0) { break; } else if ((c >= 32) && (c <= 126)) { @@ -144,7 +143,7 @@ static void json_writer_escape_string(grpc_json_writer *writer, break; } } else { - gpr_uint32 utf32 = 0; + uint32_t utf32 = 0; int extra = 0; int i; int valid = 1; @@ -162,7 +161,7 @@ static void json_writer_escape_string(grpc_json_writer *writer, } for (i = 0; i < extra; i++) { utf32 <<= 6; - c = (gpr_uint8)(*string++); + c = (uint8_t)(*string++); /* Breaks out and bail on any invalid UTF-8 sequence, including \0. */ if ((c & 0xc0) != 0x80) { valid = 0; @@ -195,11 +194,10 @@ static void json_writer_escape_string(grpc_json_writer *writer, * That range is exactly 20 bits. */ utf32 -= 0x10000; - json_writer_escape_utf16(writer, (gpr_uint16)(0xd800 | (utf32 >> 10))); - json_writer_escape_utf16(writer, - (gpr_uint16)(0xdc00 | (utf32 & 0x3ff))); + json_writer_escape_utf16(writer, (uint16_t)(0xd800 | (utf32 >> 10))); + json_writer_escape_utf16(writer, (uint16_t)(0xdc00 | (utf32 & 0x3ff))); } else { - json_writer_escape_utf16(writer, (gpr_uint16)utf32); + json_writer_escape_utf16(writer, (uint16_t)utf32); } } } |