Since strings are null-terminated, size() returns incorrect length, so use length() instead. fixes #6287 (cherry picked from commit 810fbb70aec2cbe03721c1f6291a81bbae1adc39)
@@ -3046,7 +3046,7 @@ bool Variant::iter_next(Variant& r_iter,bool &valid) const {
const String *str=reinterpret_cast<const String*>(_data._mem);
int idx = r_iter;
idx++;
- if (idx >= str->size())
+ if (idx >= str->length())
return false;
r_iter = idx;
return true;