mirror of
https://github.com/pocoproject/poco.git
synced 2025-05-02 07:31:37 +02:00
src/Var.cpp: 2 * sanity check in wrong place ? #1784
This commit is contained in:
parent
34826e3797
commit
72b826651f
@ -414,7 +414,7 @@ Var Var::parse(const std::string& val, std::string::size_type& pos)
|
|||||||
|
|
||||||
Var Var::parseObject(const std::string& val, std::string::size_type& pos)
|
Var Var::parseObject(const std::string& val, std::string::size_type& pos)
|
||||||
{
|
{
|
||||||
poco_assert_dbg (val[pos] == '{');
|
poco_assert_dbg (pos < val.size() && val[pos] == '{');
|
||||||
++pos;
|
++pos;
|
||||||
skipWhiteSpace(val, pos);
|
skipWhiteSpace(val, pos);
|
||||||
DynamicStruct aStruct;
|
DynamicStruct aStruct;
|
||||||
@ -443,7 +443,7 @@ Var Var::parseObject(const std::string& val, std::string::size_type& pos)
|
|||||||
|
|
||||||
Var Var::parseArray(const std::string& val, std::string::size_type& pos)
|
Var Var::parseArray(const std::string& val, std::string::size_type& pos)
|
||||||
{
|
{
|
||||||
poco_assert_dbg (val[pos] == '[');
|
poco_assert_dbg (pos < val.size() && val[pos] == '[');
|
||||||
++pos;
|
++pos;
|
||||||
skipWhiteSpace(val, pos);
|
skipWhiteSpace(val, pos);
|
||||||
std::vector<Var> result;
|
std::vector<Var> result;
|
||||||
@ -466,6 +466,7 @@ Var Var::parseArray(const std::string& val, std::string::size_type& pos)
|
|||||||
|
|
||||||
std::string Var::parseString(const std::string& val, std::string::size_type& pos)
|
std::string Var::parseString(const std::string& val, std::string::size_type& pos)
|
||||||
{
|
{
|
||||||
|
poco_assert_dbg (pos < val.size());
|
||||||
if (val[pos] == '"')
|
if (val[pos] == '"')
|
||||||
{
|
{
|
||||||
return parseJSONString(val, pos);
|
return parseJSONString(val, pos);
|
||||||
@ -488,7 +489,7 @@ std::string Var::parseString(const std::string& val, std::string::size_type& pos
|
|||||||
|
|
||||||
std::string Var::parseJSONString(const std::string& val, std::string::size_type& pos)
|
std::string Var::parseJSONString(const std::string& val, std::string::size_type& pos)
|
||||||
{
|
{
|
||||||
poco_assert_dbg (val[pos] == '"');
|
poco_assert_dbg (pos < val.size() && val[pos] == '"');
|
||||||
++pos;
|
++pos;
|
||||||
std::string result;
|
std::string result;
|
||||||
bool done = false;
|
bool done = false;
|
||||||
@ -545,7 +546,8 @@ std::string Var::parseJSONString(const std::string& val, std::string::size_type&
|
|||||||
|
|
||||||
void Var::skipWhiteSpace(const std::string& val, std::string::size_type& pos)
|
void Var::skipWhiteSpace(const std::string& val, std::string::size_type& pos)
|
||||||
{
|
{
|
||||||
while (std::isspace(val[pos]))
|
poco_assert_dbg (pos < val.size());
|
||||||
|
while (std::isspace(val[pos]) && pos < val.size())
|
||||||
++pos;
|
++pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user