Lines Matching refs:input_buffer
258 static cJSON_bool parse_number(cJSON *const item, parse_buffer *const input_buffer) in parse_number() argument
266 if ((input_buffer == NULL) || (input_buffer->content == NULL)) return false; in parse_number()
271 for (i = 0; (i < (sizeof(number_c_string) - 1)) && can_access_at_index(input_buffer, i); i++) { in parse_number()
272 switch (buffer_at_offset(input_buffer)[i]) { in parse_number() local
287 number_c_string[i] = buffer_at_offset(input_buffer)[i]; in parse_number()
317 input_buffer->offset += (size_t)(after_end - number_c_string); in parse_number()
624 static cJSON_bool parse_string(cJSON *const item, parse_buffer *const input_buffer) in parse_string() argument
626 const unsigned char *input_pointer = buffer_at_offset(input_buffer) + 1; in parse_string()
627 const unsigned char *input_end = buffer_at_offset(input_buffer) + 1; in parse_string()
632 if (buffer_at_offset(input_buffer)[0] != '\"') goto fail; in parse_string() local
638 …while (((size_t)(input_end - input_buffer->content) < input_buffer->length) && (*input_end != '\"'… in parse_string()
641 if ((size_t)(input_end + 1 - input_buffer->content) >= input_buffer->length) { in parse_string()
650 …if (((size_t)(input_end - input_buffer->content) >= input_buffer->length) || (*input_end != '\"'))… in parse_string()
653 allocation_length = (size_t)(input_end - buffer_at_offset(input_buffer)) - skipped_bytes; in parse_string()
654 … output = (unsigned char *)input_buffer->hooks.allocate(allocation_length + sizeof("")); in parse_string()
711 input_buffer->offset = (size_t)(input_end - input_buffer->content); in parse_string()
712 input_buffer->offset++; in parse_string()
717 if (output != NULL) input_buffer->hooks.deallocate(output); in parse_string()
719 if (input_pointer != NULL) input_buffer->offset = (size_t)(input_pointer - input_buffer->content); in parse_string()
834 static cJSON_bool parse_value(cJSON *const item, parse_buffer *const input_buffer);
836 static cJSON_bool parse_array(cJSON *const item, parse_buffer *const input_buffer);
838 static cJSON_bool parse_object(cJSON *const item, parse_buffer *const input_buffer);
1051 static cJSON_bool parse_value(cJSON *const item, parse_buffer *const input_buffer) in parse_value() argument
1053 if ((input_buffer == NULL) || (input_buffer->content == NULL)) return false; /* no input */ in parse_value()
1057 …if (can_read(input_buffer, 4) && (strncmp((const char *)buffer_at_offset(input_buffer), "null", 4)… in parse_value()
1059 input_buffer->offset += 4; in parse_value()
1063 …if (can_read(input_buffer, 5) && (strncmp((const char *)buffer_at_offset(input_buffer), "false", 5… in parse_value()
1065 input_buffer->offset += 5; in parse_value()
1069 …if (can_read(input_buffer, 4) && (strncmp((const char *)buffer_at_offset(input_buffer), "true", 4)… in parse_value()
1072 input_buffer->offset += 4; in parse_value()
1076 …if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '\"')) return pa… in parse_value()
1078 …input_buffer, 0) && ((buffer_at_offset(input_buffer)[0] == '-') || ((buffer_at_offset(input_buffer… in parse_value()
1080 …if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '[')) return par… in parse_value()
1082 …if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '{')) return par… in parse_value()
1142 static cJSON_bool parse_array(cJSON *const item, parse_buffer *const input_buffer) in parse_array() argument
1147 if (input_buffer->depth >= CJSON_NESTING_LIMIT) return false; /* to deeply nested */ in parse_array()
1148 input_buffer->depth++; in parse_array()
1150 if (buffer_at_offset(input_buffer)[0] != '[') { in parse_array() local
1155 input_buffer->offset++; in parse_array()
1156 buffer_skip_whitespace(input_buffer); in parse_array()
1157 if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ']')) { in parse_array()
1163 if (cannot_access_at_index(input_buffer, 0)) { in parse_array()
1164 input_buffer->offset--; in parse_array()
1169 input_buffer->offset--; in parse_array()
1173 cJSON *new_item = cJSON_New_Item(&input_buffer->hooks); in parse_array()
1188 input_buffer->offset++; in parse_array()
1189 buffer_skip_whitespace(input_buffer); in parse_array()
1190 if (!parse_value(current_item, input_buffer)) goto fail; /* failed to parse value */ in parse_array()
1191 buffer_skip_whitespace(input_buffer); in parse_array()
1192 } while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); in parse_array()
1194 …if (cannot_access_at_index(input_buffer, 0) || buffer_at_offset(input_buffer)[0] != ']') goto fail… in parse_array()
1197 input_buffer->depth--; in parse_array()
1204 input_buffer->offset++; in parse_array()
1257 static cJSON_bool parse_object(cJSON *const item, parse_buffer *const input_buffer) in parse_object() argument
1262 if (input_buffer->depth >= CJSON_NESTING_LIMIT) return false; /* to deeply nested */ in parse_object()
1263 input_buffer->depth++; in parse_object()
1265 …if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '{')) goto fa… in parse_object()
1267 input_buffer->offset++; in parse_object()
1268 buffer_skip_whitespace(input_buffer); in parse_object()
1269 …if (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == '}')) goto succe… in parse_object()
1272 if (cannot_access_at_index(input_buffer, 0)) { in parse_object()
1273 input_buffer->offset--; in parse_object()
1278 input_buffer->offset--; in parse_object()
1282 cJSON *new_item = cJSON_New_Item(&input_buffer->hooks); in parse_object()
1297 input_buffer->offset++; in parse_object()
1298 buffer_skip_whitespace(input_buffer); in parse_object()
1299 if (!parse_string(current_item, input_buffer)) goto fail; /* failed to parse name */ in parse_object()
1300 buffer_skip_whitespace(input_buffer); in parse_object()
1306 …if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != ':')) goto fa… in parse_object()
1309 input_buffer->offset++; in parse_object()
1310 buffer_skip_whitespace(input_buffer); in parse_object()
1311 if (!parse_value(current_item, input_buffer)) goto fail; /* failed to parse value */ in parse_object()
1312 buffer_skip_whitespace(input_buffer); in parse_object()
1313 } while (can_access_at_index(input_buffer, 0) && (buffer_at_offset(input_buffer)[0] == ',')); in parse_object()
1315 …if (cannot_access_at_index(input_buffer, 0) || (buffer_at_offset(input_buffer)[0] != '}')) goto fa… in parse_object()
1318 input_buffer->depth--; in parse_object()
1325 input_buffer->offset++; in parse_object()