From b768f3da27ffcbccdbbb505916b8889e6458c895 Mon Sep 17 00:00:00 2001 From: Matt Borland Date: Tue, 20 Jun 2023 14:41:59 +0200 Subject: [PATCH] Fix offset when inserting into middle of existing number --- include/boost/charconv/detail/ryu/ryu_generic_128.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/charconv/detail/ryu/ryu_generic_128.hpp b/include/boost/charconv/detail/ryu/ryu_generic_128.hpp index cc79e7d..37e7824 100644 --- a/include/boost/charconv/detail/ryu/ryu_generic_128.hpp +++ b/include/boost/charconv/detail/ryu/ryu_generic_128.hpp @@ -517,8 +517,8 @@ static inline int generic_to_chars_fixed(const struct floating_decimal_128 v, ch else if ((-v.exponent) < current_len) { // Option 3: Insert a decimal point into the middle of the existing number - memmove(result - v.exponent + 1, result - v.exponent, -v.exponent); - memcpy(result - v.exponent, ".", 1); + memmove(result + current_len + v.exponent + 1, result + current_len + v.exponent, -v.exponent); + memcpy(result + current_len + v.exponent, ".", 1); ++current_len; } else