From b3647a7d91af0777f2cd11a120754c36cd6c2e5b Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sun, 12 Jan 2014 12:39:35 +0100 Subject: [PATCH] Parser size is now specified in bytes instead of number of tokens --- JsonParser.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/JsonParser.h b/JsonParser.h index 593d1262..8b766b53 100644 --- a/JsonParser.h +++ b/JsonParser.h @@ -9,7 +9,7 @@ #include "JsonHashTable.h" #include "JsonArray.h" -template +template // SIZE of the parser in bytes (128, 256 or more are recommended) class JsonParser { public: @@ -26,18 +26,21 @@ public: private: - jsmntok_t* parse(char* jsonString) + jsmntok_t* parse(char* json) { jsmn_parser parser; jsmn_init(&parser); - if (JSMN_SUCCESS != jsmn_parse(&parser, jsonString, tokens, N)) + jsmntok_t* tokens = (jsmntok_t*) buffer; + int maxTokenCount = SIZE / sizeof(jsmntok_t); + + if (JSMN_SUCCESS != jsmn_parse(&parser, json, tokens, maxTokenCount)) return 0; return tokens; } - jsmntok_t tokens[N]; + char buffer[SIZE]; }; #endif