aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/json
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2016-01-11 10:08:26 -0800
committerGravatar Vijay Pai <vpai@google.com>2016-01-11 10:08:26 -0800
commit6045681003bef90de4d58952474893cfb56741e4 (patch)
treeff0e1b5150c7a27d88ea7eab82acc6d95bc30c0a /src/core/json
parent78268212bae4e745606108beeeff317af393e033 (diff)
parent7f34c783c4735ce16c22cd4c92d989d4bb0e2822 (diff)
Merge branch 'master' into bbuf
Diffstat (limited to 'src/core/json')
-rw-r--r--src/core/json/json_reader.c23
-rw-r--r--src/core/json/json_reader.h8
-rw-r--r--src/core/json/json_string.c38
-rw-r--r--src/core/json/json_writer.c16
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);
}
}
}