summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/rtl/strbuf.hxx20
-rw-r--r--include/rtl/ustrbuf.hxx20
2 files changed, 24 insertions, 16 deletions
diff --git a/include/rtl/strbuf.hxx b/include/rtl/strbuf.hxx
index e5ae1ebd0a7b..cb842bb5839e 100644
--- a/include/rtl/strbuf.hxx
+++ b/include/rtl/strbuf.hxx
@@ -756,8 +756,7 @@ public:
*/
OStringBuffer & append(float f)
{
- char sz[RTL_STR_MAX_VALUEOFFLOAT];
- return append( sz, rtl_str_valueOfFloat( sz, f ) );
+ return insert(getLength(), f);
}
/**
@@ -773,8 +772,7 @@ public:
*/
OStringBuffer & append(double d)
{
- char sz[RTL_STR_MAX_VALUEOFDOUBLE];
- return append( sz, rtl_str_valueOfDouble( sz, d ) );
+ return insert(getLength(), d);
}
/**
@@ -1032,8 +1030,11 @@ public:
*/
OStringBuffer & insert(sal_Int32 offset, float f)
{
- char sz[RTL_STR_MAX_VALUEOFFLOAT];
- return insert( offset, sz, rtl_str_valueOfFloat( sz, f ) );
+ // Same as rtl::str::valueOfFP, used for rtl_str_valueOfFloat
+ rtl_math_doubleToString(&pData, &nCapacity, offset, f, rtl_math_StringFormat_G,
+ RTL_STR_MAX_VALUEOFFLOAT - SAL_N_ELEMENTS("-x.E-xxx") + 1, '.',
+ NULL, 0, true);
+ return *this;
}
/**
@@ -1055,8 +1056,11 @@ public:
*/
OStringBuffer & insert(sal_Int32 offset, double d)
{
- char sz[RTL_STR_MAX_VALUEOFDOUBLE];
- return insert( offset, sz, rtl_str_valueOfDouble( sz, d ) );
+ // Same as rtl::str::valueOfFP, used for rtl_str_valueOfDouble
+ rtl_math_doubleToString(&pData, &nCapacity, offset, d, rtl_math_StringFormat_G,
+ RTL_STR_MAX_VALUEOFDOUBLE - SAL_N_ELEMENTS("-x.E-xxx") + 1, '.',
+ NULL, 0, true);
+ return *this;
}
/**
diff --git a/include/rtl/ustrbuf.hxx b/include/rtl/ustrbuf.hxx
index 363b4f24757f..227eed842443 100644
--- a/include/rtl/ustrbuf.hxx
+++ b/include/rtl/ustrbuf.hxx
@@ -916,8 +916,7 @@ public:
*/
OUStringBuffer & append(float f)
{
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFFLOAT];
- return append( sz, rtl_ustr_valueOfFloat( sz, f ) );
+ return insert(getLength(), f);
}
/**
@@ -933,8 +932,7 @@ public:
*/
OUStringBuffer & append(double d)
{
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFDOUBLE];
- return append( sz, rtl_ustr_valueOfDouble( sz, d ) );
+ return insert(getLength(), d);
}
/**
@@ -1288,8 +1286,11 @@ public:
*/
OUStringBuffer & insert(sal_Int32 offset, float f)
{
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFFLOAT];
- return insert( offset, sz, rtl_ustr_valueOfFloat( sz, f ) );
+ // Same as rtl::str::valueOfFP, used for rtl_ustr_valueOfFloat
+ rtl_math_doubleToUString(&pData, &nCapacity, offset, f, rtl_math_StringFormat_G,
+ RTL_USTR_MAX_VALUEOFFLOAT - SAL_N_ELEMENTS("-x.E-xxx") + 1, '.',
+ NULL, 0, true);
+ return *this;
}
/**
@@ -1312,8 +1313,11 @@ public:
*/
OUStringBuffer & insert(sal_Int32 offset, double d)
{
- sal_Unicode sz[RTL_USTR_MAX_VALUEOFDOUBLE];
- return insert( offset, sz, rtl_ustr_valueOfDouble( sz, d ) );
+ // Same as rtl::str::valueOfFP, used for rtl_ustr_valueOfDouble
+ rtl_math_doubleToUString(&pData, &nCapacity, offset, d, rtl_math_StringFormat_G,
+ RTL_USTR_MAX_VALUEOFDOUBLE - SAL_N_ELEMENTS("-x.E-xxx") + 1, '.',
+ NULL, 0, true);
+ return *this;
}
/**