]> git.stg.codes - stg.git/commitdiff
Minor fixes in JSON parser.
authorMaxim Mamontov <faust.madf@gmail.com>
Mon, 31 Aug 2015 18:53:03 +0000 (21:53 +0300)
committerMaxim Mamontov <faust.madf@gmail.com>
Mon, 31 Aug 2015 18:53:03 +0000 (21:53 +0300)
stglibs/json.lib/include/stg/json_parser.h
stglibs/json.lib/parser.cpp

index 73009d2fd510225f8e970567c7d00f9298947182..d20e669df49543d0cf91538b6939faf08a6088c1 100644 (file)
@@ -55,7 +55,7 @@ class Parser
         virtual ~Parser();
 
         bool append(const char* data, size_t size);
         virtual ~Parser();
 
         bool append(const char* data, size_t size);
-        bool done();
+        bool last();
 
     private:
         class Impl;
 
     private:
         class Impl;
index 5547b6979c49541372d4e0bfc6a86593bb13ef3f..571150480de86a441766679089f2eefa662bdf7b 100644 (file)
@@ -34,8 +34,8 @@ class Parser::Impl
             yajl_free(m_handle);
         }
 
             yajl_free(m_handle);
         }
 
-        bool append(const char* data, size_t size) { return yajl_parse(m_handle, reinterpret_cast<const unsigned char*>(data), size) != yajl_status_ok; }
-        bool done() { return yajl_complete_parse(m_handle) != yajl_status_ok; }
+        bool append(const char* data, size_t size) { return yajl_parse(m_handle, reinterpret_cast<const unsigned char*>(data), size) == yajl_status_ok; }
+        bool last() { return yajl_complete_parse(m_handle) == yajl_status_ok; }
 
         static int parseNull(void* ctx)
         { return runParser(ctx, &NodeParser::parseNull); }
 
         static int parseNull(void* ctx)
         { return runParser(ctx, &NodeParser::parseNull); }
@@ -100,6 +100,7 @@ Parser::Impl::Impl(NodeParser* topParser)
     : m_handle(yajl_alloc(&callbacks, NULL, this)),
       m_parser(topParser)
 {
     : m_handle(yajl_alloc(&callbacks, NULL, this)),
       m_parser(topParser)
 {
+    yajl_config(m_handle, yajl_allow_multiple_values, 1);
 }
 
 Parser::Parser(NodeParser* topParser)
 }
 
 Parser::Parser(NodeParser* topParser)
@@ -116,7 +117,7 @@ bool Parser::append(const char* data, size_t size)
     return m_impl->append(data, size);
 }
 
     return m_impl->append(data, size);
 }
 
-bool Parser::done()
+bool Parser::last()
 {
 {
-    return m_impl->done();
+    return m_impl->last();
 }
 }