diff options
Diffstat (limited to 'sal')
-rw-r--r-- | sal/inc/rtl/string.hxx | 10 | ||||
-rw-r--r-- | sal/inc/rtl/ustring.hxx | 10 |
2 files changed, 16 insertions, 4 deletions
diff --git a/sal/inc/rtl/string.hxx b/sal/inc/rtl/string.hxx index 6b3d2fff877a..11a7bf787853 100644 --- a/sal/inc/rtl/string.hxx +++ b/sal/inc/rtl/string.hxx @@ -205,7 +205,10 @@ public: { assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); pData = 0; - rtl_string_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); + if( internal::ConstCharArrayDetector< T, void >::size - 1 == 0 ) // empty string + rtl_string_new( &pData ); + else + rtl_string_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); #ifdef RTL_STRING_UNITTEST rtl_string_unittest_const_literal = true; #endif @@ -304,7 +307,10 @@ public: { RTL_STRING_CONST_FUNCTION assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); - rtl_string_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); + if( internal::ConstCharArrayDetector< T, void >::size - 1 == 0 ) // empty string + rtl_string_new( &pData ); + else + rtl_string_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); return *this; } diff --git a/sal/inc/rtl/ustring.hxx b/sal/inc/rtl/ustring.hxx index a4051ac928e4..69b8ab863bfa 100644 --- a/sal/inc/rtl/ustring.hxx +++ b/sal/inc/rtl/ustring.hxx @@ -231,7 +231,10 @@ public: { assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); pData = 0; - rtl_uString_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); + if( internal::ConstCharArrayDetector< T, void >::size - 1 == 0 ) // empty string + rtl_uString_new( &pData ); + else + rtl_uString_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); #ifdef RTL_STRING_UNITTEST rtl_string_unittest_const_literal = true; #endif @@ -393,7 +396,10 @@ public: typename internal::ConstCharArrayDetector< T, OUString& >::Type operator=( T& literal ) { assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); - rtl_uString_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); + if( internal::ConstCharArrayDetector< T, void >::size - 1 == 0 ) // empty string + rtl_uString_new( &pData ); + else + rtl_uString_newFromLiteral( &pData, literal, internal::ConstCharArrayDetector< T, void >::size - 1, 0 ); return *this; } |