Skip to content

Commit 64d591b

Browse files
Matthias Loycdunn2001
Matthias Loy
authored andcommitted
snprintf already calculated the length
1 parent fe2cd01 commit 64d591b

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/lib_json/json_writer.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,18 @@ std::string valueToString(double value) {
7474
#if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with
7575
// visual studio 2005 to
7676
// avoid warning.
77+
size_t len;
7778
#if defined(WINCE)
78-
_snprintf(buffer, sizeof(buffer), "%.16g", value);
79+
len = _snprintf(buffer, sizeof(buffer), "%.16g", value);
7980
#else
80-
sprintf_s(buffer, sizeof(buffer), "%.16g", value);
81+
len = sprintf_s(buffer, sizeof(buffer), "%.16g", value);
8182
#endif
83+
fixNumericLocale(buffer, buffer + len);
8284
#else
8385
if ( isfinite( value ))
84-
{
85-
snprintf(buffer, sizeof(buffer), "%.16g", value);
86+
{
87+
size_t len = snprintf(buffer, sizeof(buffer), "%.16g", value);
88+
fixNumericLocale(buffer, buffer + len);
8689
}
8790
else
8891
{
@@ -99,12 +102,8 @@ std::string valueToString(double value) {
99102
{
100103
snprintf(buffer, sizeof(buffer), "1e+9999");
101104
}
102-
// nothing more to do, return.
103-
return buffer;
104105
}
105-
106106
#endif
107-
fixNumericLocale(buffer, buffer + strlen(buffer));
108107
return buffer;
109108
}
110109

0 commit comments

Comments
 (0)