Kaydet (Commit) 06e76156 authored tarafından Luboš Luňák's avatar Luboš Luňák

microoptimization for "" OUString ctor

Now 'OUString()' and '""' should be exactly the same, and thus the latter better :).

Change-Id: If42b2ca5889967aaa8ccdaf531b45c75c12d54fd
üst bae655a7
...@@ -205,7 +205,10 @@ public: ...@@ -205,7 +205,10 @@ public:
{ {
assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 );
pData = 0; 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 #ifdef RTL_STRING_UNITTEST
rtl_string_unittest_const_literal = true; rtl_string_unittest_const_literal = true;
#endif #endif
...@@ -304,7 +307,10 @@ public: ...@@ -304,7 +307,10 @@ public:
{ {
RTL_STRING_CONST_FUNCTION RTL_STRING_CONST_FUNCTION
assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); 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; return *this;
} }
......
...@@ -231,7 +231,10 @@ public: ...@@ -231,7 +231,10 @@ public:
{ {
assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 );
pData = 0; 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 #ifdef RTL_STRING_UNITTEST
rtl_string_unittest_const_literal = true; rtl_string_unittest_const_literal = true;
#endif #endif
...@@ -393,7 +396,10 @@ public: ...@@ -393,7 +396,10 @@ public:
typename internal::ConstCharArrayDetector< T, OUString& >::Type operator=( T& literal ) typename internal::ConstCharArrayDetector< T, OUString& >::Type operator=( T& literal )
{ {
assert( strlen( literal ) == internal::ConstCharArrayDetector< T >::size - 1 ); 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; return *this;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment