"test/vscode:/vscode.git/clone" did not exist on "6d5cfab5fdf1a2450a026c60109fa699bccd7ca8"
Commit 907be066 authored by Jesse Beder's avatar Jesse Beder
Browse files

Fixed infinite loop bug having to do with simple keys when we hit an unexpected EOF.

parent 3ed09b89
......@@ -33,7 +33,7 @@ namespace YAML
// checking input
void InsertSimpleKey();
bool VerifySimpleKey();
bool VerifySimpleKey(bool force = false);
void VerifyAllSimpleKeys();
bool IsWhitespaceToBeEaten(char ch);
......
......@@ -50,7 +50,8 @@ namespace YAML
// VerifySimpleKey
// . Determines whether the latest simple key to be added is valid,
// and if so, makes it valid.
bool Scanner::VerifySimpleKey()
// . If 'force' is true, then we'll pop no matter what (whether we can verify it or not).
bool Scanner::VerifySimpleKey(bool force)
{
m_isLastKeyValid = false;
if(m_simpleKeys.empty())
......@@ -60,8 +61,11 @@ namespace YAML
SimpleKey key = m_simpleKeys.top();
// only validate if we're in the correct flow level
if(key.flowLevel != m_flowLevel)
if(key.flowLevel != m_flowLevel) {
if(force)
m_simpleKeys.pop();
return false;
}
m_simpleKeys.pop();
......@@ -94,9 +98,11 @@ namespace YAML
return isValid;
}
// VerifyAllSimplyKeys
// . Pops all simple keys (with checking, but if we can't verify one, then pop it anyways).
void Scanner::VerifyAllSimpleKeys()
{
while(!m_simpleKeys.empty())
VerifySimpleKey();
VerifySimpleKey(true);
}
}
- it's just
- one thing
- after another
bad YAML: [
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment