Bugfix: add missing transition from finish state.
This commit is contained in:
parent
7acb0c181e
commit
7d33b01515
@ -947,6 +947,11 @@ private:
|
|||||||
case IterativeParsingArrayContentState:
|
case IterativeParsingArrayContentState:
|
||||||
r = TransitFromArrayStates<parseFlags>(state, is, handler);
|
r = TransitFromArrayStates<parseFlags>(state, is, handler);
|
||||||
break;
|
break;
|
||||||
|
case IterativeParsingFinishState:
|
||||||
|
// Any token appears after finish state leads to error state.
|
||||||
|
r = IterativeParsingErrorState;
|
||||||
|
RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentRootNotSingular, is.Tell());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
@ -900,6 +900,16 @@ TEST(Reader, IterativeParsing_ElementCounting) {
|
|||||||
EXPECT_EQ(1, handler.ElementCount);
|
EXPECT_EQ(1, handler.ElementCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Reader, IterativeParsing_AfterFinishState) {
|
||||||
|
StringStream json("{}, {}");
|
||||||
|
Reader reader;
|
||||||
|
BaseReaderHandler<> handler;
|
||||||
|
|
||||||
|
reader.IterativeParse<kParseIterativeFlag>(json, handler);
|
||||||
|
|
||||||
|
EXPECT_TRUE(reader.HasParseError());
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user