summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-08-27 20:50:59 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-08-28 16:10:04 +0200
commit30bd841e2d8f47e49711d928d600573339708b03 (patch)
treee7ac9cba7737c99508fb216c512c70c89c00a95d /filter
parent426930d0c4bd6f782a04a92e8a36e92cd65e186f (diff)
avoid unnecessary OString to OUString conversion
speeds up loading some writer files Change-Id: Ia6dddf3a9e8990b8cd3f600c86c758573c7ea2ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121183 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'filter')
-rw-r--r--filter/source/msfilter/util.cxx47
1 files changed, 33 insertions, 14 deletions
diff --git a/filter/source/msfilter/util.cxx b/filter/source/msfilter/util.cxx
index 148f165d3fb1..23b4de1e87be 100644
--- a/filter/source/msfilter/util.cxx
+++ b/filter/source/msfilter/util.cxx
@@ -125,23 +125,42 @@ sal_Unicode bestFitOpenSymbolToMSFont(sal_Unicode cChar,
OString ConvertColor( const Color &rColor )
{
- OString color( "auto" );
+ static constexpr OStringLiteral AUTO( "auto" );
- if ( rColor != COL_AUTO )
- {
- const char pHexDigits[] = "0123456789ABCDEF";
- char pBuffer[] = "000000";
+ if ( rColor == COL_AUTO )
+ return AUTO;
- pBuffer[0] = pHexDigits[ ( rColor.GetRed() >> 4 ) & 0x0F ];
- pBuffer[1] = pHexDigits[ rColor.GetRed() & 0x0F ];
- pBuffer[2] = pHexDigits[ ( rColor.GetGreen() >> 4 ) & 0x0F ];
- pBuffer[3] = pHexDigits[ rColor.GetGreen() & 0x0F ];
- pBuffer[4] = pHexDigits[ ( rColor.GetBlue() >> 4 ) & 0x0F ];
- pBuffer[5] = pHexDigits[ rColor.GetBlue() & 0x0F ];
+ const char pHexDigits[] = "0123456789ABCDEF";
+ char pBuffer[] = "000000";
- color = OString( pBuffer );
- }
- return color;
+ pBuffer[0] = pHexDigits[ ( rColor.GetRed() >> 4 ) & 0x0F ];
+ pBuffer[1] = pHexDigits[ rColor.GetRed() & 0x0F ];
+ pBuffer[2] = pHexDigits[ ( rColor.GetGreen() >> 4 ) & 0x0F ];
+ pBuffer[3] = pHexDigits[ rColor.GetGreen() & 0x0F ];
+ pBuffer[4] = pHexDigits[ ( rColor.GetBlue() >> 4 ) & 0x0F ];
+ pBuffer[5] = pHexDigits[ rColor.GetBlue() & 0x0F ];
+
+ return OString( pBuffer );
+}
+
+OUString ConvertColorOU( const Color &rColor )
+{
+ static constexpr OUStringLiteral AUTO( u"auto" );
+
+ if ( rColor == COL_AUTO )
+ return AUTO;
+
+ const char pHexDigits[] = "0123456789ABCDEF";
+ sal_Unicode pBuffer[] = u"000000";
+
+ pBuffer[0] = pHexDigits[ ( rColor.GetRed() >> 4 ) & 0x0F ];
+ pBuffer[1] = pHexDigits[ rColor.GetRed() & 0x0F ];
+ pBuffer[2] = pHexDigits[ ( rColor.GetGreen() >> 4 ) & 0x0F ];
+ pBuffer[3] = pHexDigits[ rColor.GetGreen() & 0x0F ];
+ pBuffer[4] = pHexDigits[ ( rColor.GetBlue() >> 4 ) & 0x0F ];
+ pBuffer[5] = pHexDigits[ rColor.GetBlue() & 0x0F ];
+
+ return OUString( pBuffer );
}
#define IN2MM100( v ) static_cast< sal_Int32 >( (v) * 2540.0 + 0.5 )