From 1b20ee4c1a12639a054cfc8a7c673e7d1e8fbc24 Mon Sep 17 00:00:00 2001 From: Charl Wentzel Date: Mon, 4 Nov 2019 13:29:53 +0200 Subject: [PATCH] Important Update: - JSONparseCore: - Bug Fix: Always report "First entry must be Object" error --- JSONparseCore.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/JSONparseCore.cpp b/JSONparseCore.cpp index b57be5e..b879e8b 100644 --- a/JSONparseCore.cpp +++ b/JSONparseCore.cpp @@ -352,26 +352,21 @@ bool CJSONparse::ReadFromBuffer( const char * BasePath ) // Parse Root Object SkipWhiteSpace(); - if (!ParseObject( BaseMember ) && !Error && !ParseArray( BaseMember )) { - if (!Error) { - Error = true; - CharNo += BufPos-Mark; - sprintf( ErrorText, "First entry in file must be an Object or Array on line %d:%d", LineNo, CharNo ); - } - FreeBuffer(); + if (!ParseObject( BaseMember ) && !Error && !ParseArray( BaseMember ) && !Error) { + Error = true; + CharNo += BufPos-Mark; + sprintf( ErrorText, "First entry in file must be an Object or Array on line %d:%d", LineNo, CharNo ); + } + if (Error) { return false; } // Ensure remainder of file is empty SkipWhiteSpace(); - if (Error) { - return false; - } - else if (*BufPos != 0) { + if (*BufPos != 0) { Error = true; CharNo += BufPos-Mark; sprintf( ErrorText, "No content expected after Root object on line %d:%d", LineNo, CharNo ); - FreeBuffer(); return false; }