]> git.saurik.com Git - wxWidgets.git/commitdiff
make To/From8bit() inline for performance reasons
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 20 Jul 2007 01:10:22 +0000 (01:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 20 Jul 2007 01:10:22 +0000 (01:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47578 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/unichar.h
src/common/unichar.cpp

index b91db6676b7686c978eb57acec381463ec77be60..6ce07892156f3072b1f00cd7f10f1933340448ec 100644 (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;
index 4bfb6277b80ac697c6349cc80983f33a7eaacd37..653e33f14e066a0af2f9b8c1cac23f6e8d0c425f 100644 (file)
 // ---------------------------------------------------------------------------
 
 /* 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?