possible fix

This commit is contained in:
Niels 2015-02-10 22:37:07 +01:00
parent 1bbde4597b
commit 6232c78f88
2 changed files with 318 additions and 655 deletions

File diff suppressed because it is too large Load diff

View file

@ -2412,10 +2412,12 @@ class basic_json
/// constructor for strings /// constructor for strings
inline parser(const std::string& s) : buffer(s) inline parser(const std::string& s) : buffer(s)
{ {
buffer += " ";
// set buffer for RE2C // set buffer for RE2C
buffer_re2c = reinterpret_cast<const lexer_char_t*>(buffer.c_str()); buffer_re2c = reinterpret_cast<const lexer_char_t*>(buffer.c_str());
// set a pointer past the end of the buffer // set a pointer past the end of the buffer
buffer_re2c_limit = buffer_re2c + buffer.size(); buffer_re2c_limit = buffer_re2c + buffer.size() - 5;
// read first token // read first token
get_token(); get_token();
} }
@ -2429,11 +2431,13 @@ class basic_json
std::getline(_is, input_line); std::getline(_is, input_line);
buffer += input_line; buffer += input_line;
} }
buffer += " ";
// set buffer for RE2C // set buffer for RE2C
buffer_re2c = reinterpret_cast<const lexer_char_t*>(buffer.c_str()); buffer_re2c = reinterpret_cast<const lexer_char_t*>(buffer.c_str());
// set a pointer past the end of the buffer // set a pointer past the end of the buffer
buffer_re2c_limit = buffer_re2c + buffer.size(); buffer_re2c_limit = buffer_re2c + buffer.size() - 5;
// read first token // read first token
get_token(); get_token();
} }