diff --git a/src/json.hpp b/src/json.hpp index 3e5a45cf..5cf06249 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -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 '.' diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index e648b41b..c7784266 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -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 '.'