jp                202 ext/json/JSON_parser.c push(JSON_parser jp, int mode)
jp                204 ext/json/JSON_parser.c     jp->top += 1;
jp                205 ext/json/JSON_parser.c     if (jp->top >= jp->depth) {
jp                206 ext/json/JSON_parser.c 		jp->error_code = PHP_JSON_ERROR_DEPTH;
jp                209 ext/json/JSON_parser.c     jp->stack[jp->top] = mode;
jp                219 ext/json/JSON_parser.c pop(JSON_parser jp, int mode)
jp                221 ext/json/JSON_parser.c     if (jp->top < 0 || jp->stack[jp->top] != mode) {
jp                222 ext/json/JSON_parser.c 		jp->error_code = PHP_JSON_ERROR_STATE_MISMATCH;
jp                225 ext/json/JSON_parser.c     jp->top -= 1;
jp                244 ext/json/JSON_parser.c     JSON_parser jp = (JSON_parser)emalloc(sizeof(struct JSON_parser_struct));
jp                245 ext/json/JSON_parser.c     jp->state = GO;
jp                246 ext/json/JSON_parser.c     jp->depth = depth;
jp                247 ext/json/JSON_parser.c     jp->top = -1;
jp                248 ext/json/JSON_parser.c 	jp->error_code = PHP_JSON_ERROR_NONE;
jp                249 ext/json/JSON_parser.c     jp->stack = (int*)ecalloc(depth, sizeof(int));
jp                251 ext/json/JSON_parser.c         jp->the_zstack = (zval **)safe_emalloc(depth, sizeof(zval), 0);
jp                253 ext/json/JSON_parser.c         jp->the_zstack = &jp->the_static_zstack[0];
jp                255 ext/json/JSON_parser.c     push(jp, MODE_DONE);
jp                256 ext/json/JSON_parser.c     return jp;
jp                263 ext/json/JSON_parser.c free_JSON_parser(JSON_parser jp)
jp                265 ext/json/JSON_parser.c     efree((void*)jp->stack);
jp                266 ext/json/JSON_parser.c     if (jp->the_zstack != &jp->the_static_zstack[0]) {
jp                267 ext/json/JSON_parser.c         efree(jp->the_zstack);
jp                269 ext/json/JSON_parser.c     efree((void*)jp);
jp                392 ext/json/JSON_parser.c static void attach_zval(JSON_parser jp, int up, int cur, smart_str *key, int assoc TSRMLS_DC)
jp                394 ext/json/JSON_parser.c     zval *root = jp->the_zstack[up];
jp                395 ext/json/JSON_parser.c     zval *child =  jp->the_zstack[cur];
jp                396 ext/json/JSON_parser.c     int up_mode = jp->stack[up];
jp                439 ext/json/JSON_parser.c parse_JSON_ex(JSON_parser jp, zval *z, unsigned short utf16_json[], int length, int options TSRMLS_DC)
jp                462 ext/json/JSON_parser.c 				jp->error_code = PHP_JSON_ERROR_CTRL_CHAR;
jp                470 ext/json/JSON_parser.c         next_state = state_transition_table[jp->state][next_class];
jp                476 ext/json/JSON_parser.c 	            if (next_state == ST && jp->state != U4) {
jp                477 ext/json/JSON_parser.c 	                if (jp->state != ES) {
jp                507 ext/json/JSON_parser.c 	            } else if (next_state == ST && jp->state == U4) {
jp                522 ext/json/JSON_parser.c 	        } else if (type < IS_BOOL && ((jp->state == T3 && next_state == OK) || (jp->state == F4 && next_state == OK))) {
jp                524 ext/json/JSON_parser.c 	        } else if (type < IS_NULL && jp->state == N3 && next_state == OK) {
jp                529 ext/json/JSON_parser.c         	jp->state = next_state;
jp                537 ext/json/JSON_parser.c                 if (!pop(jp, MODE_KEY)) {
jp                541 ext/json/JSON_parser.c                 jp->state = OK;
jp                545 ext/json/JSON_parser.c                 if (type != -1 && jp->stack[jp->top] == MODE_OBJECT)
jp                553 ext/json/JSON_parser.c                         add_property_zval_ex(jp->the_zstack[jp->top], (key.len ? key.c : "_empty_"), (key.len ? (key.len + 1) : sizeof("_empty_")), mval TSRMLS_CC);
jp                556 ext/json/JSON_parser.c                         add_assoc_zval_ex(jp->the_zstack[jp->top], (key.len ? key.c : ""), (key.len ? (key.len + 1) : sizeof("")), mval);
jp                564 ext/json/JSON_parser.c                 if (!pop(jp, MODE_OBJECT)) {
jp                568 ext/json/JSON_parser.c                 jp->state = OK;
jp                573 ext/json/JSON_parser.c                 if (type != -1 && jp->stack[jp->top] == MODE_ARRAY)
jp                579 ext/json/JSON_parser.c                     add_next_index_zval(jp->the_zstack[jp->top], mval);
jp                584 ext/json/JSON_parser.c                 if (!pop(jp, MODE_ARRAY)) {
jp                588 ext/json/JSON_parser.c                 jp->state = OK;
jp                593 ext/json/JSON_parser.c                 if (!push(jp, MODE_KEY)) {
jp                598 ext/json/JSON_parser.c                 jp->state = OB;
jp                599 ext/json/JSON_parser.c                 if (jp->top > 0) {
jp                602 ext/json/JSON_parser.c                     if (jp->top == 1) {
jp                614 ext/json/JSON_parser.c                     jp->the_zstack[jp->top] = obj;
jp                616 ext/json/JSON_parser.c                     if (jp->top > 1) {
jp                617 ext/json/JSON_parser.c                         attach_zval(jp, jp->top - 1, jp->top, &key, assoc TSRMLS_CC);
jp                626 ext/json/JSON_parser.c                 if (!push(jp, MODE_ARRAY)) {
jp                630 ext/json/JSON_parser.c                 jp->state = AR;
jp                632 ext/json/JSON_parser.c                 if (jp->top > 0) {
jp                635 ext/json/JSON_parser.c                     if (jp->top == 1) {
jp                642 ext/json/JSON_parser.c                     jp->the_zstack[jp->top] = arr;
jp                644 ext/json/JSON_parser.c                     if (jp->top > 1) {
jp                645 ext/json/JSON_parser.c                         attach_zval(jp, jp->top - 1, jp->top, &key, assoc TSRMLS_CC);
jp                655 ext/json/JSON_parser.c                 switch (jp->stack[jp->top]) {
jp                657 ext/json/JSON_parser.c                     jp->state = CO;
jp                664 ext/json/JSON_parser.c                     jp->state = OK;
jp                670 ext/json/JSON_parser.c 						jp->state = OK;
jp                676 ext/json/JSON_parser.c                     jp->error_code = PHP_JSON_ERROR_SYNTAX;
jp                686 ext/json/JSON_parser.c                     (jp->stack[jp->top] == MODE_OBJECT ||
jp                687 ext/json/JSON_parser.c                      jp->stack[jp->top] == MODE_ARRAY))
jp                693 ext/json/JSON_parser.c                 switch (jp->stack[jp->top]) {
jp                695 ext/json/JSON_parser.c                         if (pop(jp, MODE_OBJECT) && push(jp, MODE_KEY)) {
jp                698 ext/json/JSON_parser.c                                     add_property_zval_ex(jp->the_zstack[jp->top], (key.len ? key.c : "_empty_"), (key.len ? (key.len + 1) : sizeof("_empty_")), mval TSRMLS_CC);
jp                701 ext/json/JSON_parser.c                                     add_assoc_zval_ex(jp->the_zstack[jp->top], (key.len ? key.c : ""), (key.len ? (key.len + 1) : sizeof("")), mval);
jp                705 ext/json/JSON_parser.c                             jp->state = KE;
jp                710 ext/json/JSON_parser.c                             add_next_index_zval(jp->the_zstack[jp->top], mval);
jp                712 ext/json/JSON_parser.c                         jp->state = VA;
jp                716 ext/json/JSON_parser.c                         jp->error_code = PHP_JSON_ERROR_SYNTAX;
jp                725 ext/json/JSON_parser.c                 if (pop(jp, MODE_KEY) && push(jp, MODE_OBJECT)) {
jp                726 ext/json/JSON_parser.c                     jp->state = VA;
jp                734 ext/json/JSON_parser.c 					jp->error_code = PHP_JSON_ERROR_SYNTAX;
jp                743 ext/json/JSON_parser.c 	if (jp->state == OK && pop(jp, MODE_DONE)) {
jp                747 ext/json/JSON_parser.c 	jp->error_code = PHP_JSON_ERROR_SYNTAX;
jp                 35 ext/json/JSON_parser.h extern int parse_JSON_ex(JSON_parser jp, zval *z, unsigned short utf16_json[], int length, int options TSRMLS_DC);
jp                 36 ext/json/JSON_parser.h extern int free_JSON_parser(JSON_parser jp);
jp                 38 ext/json/JSON_parser.h static inline int parse_JSON(JSON_parser jp, zval *z, unsigned short utf16_json[], int length, int assoc TSRMLS_DC)
jp                 40 ext/json/JSON_parser.h 	return parse_JSON_ex(jp, z, utf16_json, length, assoc ? PHP_JSON_OBJECT_AS_ARRAY : 0 TSRMLS_CC);
jp                688 ext/json/json.c 	JSON_parser jp;
jp                708 ext/json/json.c 	jp = new_JSON_parser(depth);
jp                709 ext/json/json.c 	if (parse_JSON_ex(jp, z, utf16, utf16_len, options TSRMLS_CC)) {
jp                736 ext/json/json.c 				jp->error_code = PHP_JSON_ERROR_NONE;
jp                779 ext/json/json.c 			jp->error_code = PHP_JSON_ERROR_NONE;
jp                786 ext/json/json.c 	JSON_G(error_code) = jp->error_code;
jp                787 ext/json/json.c 	free_JSON_parser(jp);