🐛 fixed a logical error

Treated the size of the range as the number of thousand separators.
This logical error yielded a negative value for written_bytes and
eventually an infinite loop, as written_bytes was converted to an
unsigned value.
parent af070744
......@@ -6648,7 +6648,8 @@ class basic_json
{
const auto end = std::remove(m_buf.begin(), m_buf.begin() + written_bytes, thousands_sep);
std::fill(end, m_buf.end(), '\0');
written_bytes -= (m_buf.end() - end);
assert((end - m_buf.begin()) <= written_bytes);
written_bytes = (end - m_buf.begin());
}
// convert decimal point to '.'
......
......@@ -6648,7 +6648,8 @@ class basic_json
{
const auto end = std::remove(m_buf.begin(), m_buf.begin() + written_bytes, thousands_sep);
std::fill(end, m_buf.end(), '\0');
written_bytes -= (m_buf.end() - end);
assert((end - m_buf.begin()) <= written_bytes);
written_bytes = (end - m_buf.begin());
}
// convert decimal point to '.'
......
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