From edb70682d5dab139adb06afe7975f0f1199045e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Mon, 10 Feb 2020 09:18:58 +0100 Subject: [PATCH] Fix VariantParser::StreamString EOF determination (cherry picked from commit 521da75380be712157fa172e27dda4dabba1de51) --- core/variant_parser.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp index 6ca9d6c2469..4ce33b0123b 100644 --- a/core/variant_parser.cpp +++ b/core/variant_parser.cpp @@ -51,10 +51,16 @@ bool VariantParser::StreamFile::is_eof() const { CharType VariantParser::StreamString::get_char() { - if (pos >= s.length()) + if (pos > s.length()) { return 0; - else + } else if (pos == s.length()) { + // You need to try to read again when you have reached the end for EOF to be reported, + // so this works the same as files (like StreamFile does) + pos++; + return 0; + } else { return s[pos++]; + } } bool VariantParser::StreamString::is_utf8() const {