Important Update:

- JSONparseCore:
  - Bug Fix: Always report "First entry must be Object" error
This commit is contained in:
Charl Wentzel
2019-11-04 13:29:53 +02:00
parent d8f8d6851c
commit 1b20ee4c1a

View File

@@ -352,26 +352,21 @@ bool CJSONparse::ReadFromBuffer( const char * BasePath )
// Parse Root Object // Parse Root Object
SkipWhiteSpace(); SkipWhiteSpace();
if (!ParseObject( BaseMember ) && !Error && !ParseArray( BaseMember )) { if (!ParseObject( BaseMember ) && !Error && !ParseArray( BaseMember ) && !Error) {
if (!Error) {
Error = true; Error = true;
CharNo += BufPos-Mark; CharNo += BufPos-Mark;
sprintf( ErrorText, "First entry in file must be an Object or Array on line %d:%d", LineNo, CharNo ); sprintf( ErrorText, "First entry in file must be an Object or Array on line %d:%d", LineNo, CharNo );
} }
FreeBuffer(); if (Error) {
return false; return false;
} }
// Ensure remainder of file is empty // Ensure remainder of file is empty
SkipWhiteSpace(); SkipWhiteSpace();
if (Error) { if (*BufPos != 0) {
return false;
}
else if (*BufPos != 0) {
Error = true; Error = true;
CharNo += BufPos-Mark; CharNo += BufPos-Mark;
sprintf( ErrorText, "No content expected after Root object on line %d:%d", LineNo, CharNo ); sprintf( ErrorText, "No content expected after Root object on line %d:%d", LineNo, CharNo );
FreeBuffer();
return false; return false;
} }