]> git.saurik.com Git - wxWidgets.git/commitdiff
optimize wxStringOperationsUtf8::DecodeChar() for the ASCII case
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 22 Aug 2007 09:24:56 +0000 (09:24 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 22 Aug 2007 09:24:56 +0000 (09:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

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

index b8ba8abd749c21430986cedad4f7dc272877528e..1aa44e5f67e12ffd39aef628cd39d2d84fa6e3f2 100644 (file)
@@ -156,7 +156,15 @@ struct WXDLLIMPEXP_BASE wxStringOperationsUtf8
     }
 
     // decodes single UTF-8 character from UTF-8 string
-    static wxUniChar DecodeChar(wxStringImpl::const_iterator i);
+    static wxUniChar DecodeChar(wxStringImpl::const_iterator i)
+    {
+        if ( (unsigned char)*i < 0x80 )
+            return (int)*i;
+        return DecodeNonAsciiChar(i);
+    }
+
+private:
+    static wxUniChar DecodeNonAsciiChar(wxStringImpl::const_iterator i);
 };
 #endif // wxUSE_UNICODE_UTF8
 
index 205004806242242cb4048d1fdaccfa7817721879..08d451492e813a0fd3ce9a655ccfec03ab9e3389 100644 (file)
@@ -249,7 +249,7 @@ wxUniChar::Utf8CharBuffer wxUniChar::AsUTF8() const
 }
 
 wxUniChar
-wxStringOperationsUtf8::DecodeChar(wxStringImpl::const_iterator i)
+wxStringOperationsUtf8::DecodeNonAsciiChar(wxStringImpl::const_iterator i)
 {
     wxASSERT( IsValidUtf8LeadByte(*i) );