make To/From8bit() inline for performance reasons

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2007-07-20 01:10:22 +00:00
parent cdbcd6c12f
commit ce65118e62
2 changed files with 23 additions and 12 deletions

View File

@ -137,8 +137,27 @@ public:
private:
static value_type From8bit(char c);
static char To8bit(value_type c);
// notice that we implement these functions inline for 7-bit ASCII
// characters purely for performance reasons
static value_type From8bit(char c)
{
if ( (unsigned char)c < 0x80 )
return c;
return FromHi8bit(c);
}
static char To8bit(value_type c)
{
if ( c < 0x80 )
return c;
return ToHi8bit(c);
}
// helpers of the functions above called to deal with non-ASCII chars
static value_type FromHi8bit(char c);
static char ToHi8bit(value_type c);
private:
value_type m_value;

View File

@ -36,12 +36,8 @@
// ---------------------------------------------------------------------------
/* static */
wxUniChar::value_type wxUniChar::From8bit(char c)
wxUniChar::value_type wxUniChar::FromHi8bit(char c)
{
// all supported charsets have the first 128 characters same as ASCII:
if ( (unsigned char)c < 0x80 )
return c;
#if wxUSE_UTF8_LOCALE_ONLY
wxFAIL_MSG( "invalid UTF-8 character" );
return wxT('?'); // FIXME-UTF8: what to use as failure character?
@ -57,12 +53,8 @@ wxUniChar::value_type wxUniChar::From8bit(char c)
}
/* static */
char wxUniChar::To8bit(wxUniChar::value_type c)
char wxUniChar::ToHi8bit(wxUniChar::value_type c)
{
// all supported charsets have the first 128 characters same as ASCII:
if ( c < 0x80 )
return c;
#if wxUSE_UTF8_LOCALE_ONLY
wxFAIL_MSG( "character cannot be converted to single UTF-8 byte" );
return '?'; // FIXME-UTF8: what to use as failure character?