summaryrefslogtreecommitdiff
path: root/ext/json/JSON_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/json/JSON_parser.h')
-rw-r--r--ext/json/JSON_parser.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/ext/json/JSON_parser.h b/ext/json/JSON_parser.h
index 4790f728e3..9aab62a912 100644
--- a/ext/json/JSON_parser.h
+++ b/ext/json/JSON_parser.h
@@ -1,6 +1,24 @@
-/* JSON_checker.h */
+/* JSON_parser.h */
+
+#ifndef JSON_PARSER_H
+#define JSON_PARSER_H
#include "php.h"
#include "ext/standard/php_smart_str.h"
-extern int JSON_parser(zval *z, unsigned short p[], int length, int assoc TSRMLS_DC);
+#define JSON_PARSER_MAX_DEPTH 512
+
+typedef struct JSON_parser_struct {
+ int state;
+ int depth;
+ int top;
+ int error;
+ int* stack;
+ zval *the_zstack[JSON_PARSER_MAX_DEPTH];
+
+} * JSON_parser;
+
+extern JSON_parser new_JSON_parser(int depth);
+extern int parse_JSON(JSON_parser jp, zval *z, unsigned short utf16_json[], int length, int assoc TSRMLS_DC);
+extern int free_JSON_parser(JSON_parser jp);
+#endif