瀏覽代碼

Simplify ParseName

Only the first char needs to be checked with IsNameStartChar, so check
it before the loop.
JayXon 11 年之前
父節點
當前提交
ee525dba4d
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      tinyxml2.cpp

+ 7 - 7
tinyxml2.cpp

@@ -140,18 +140,18 @@ char* StrPair::ParseName( char* p )
     if ( !p || !(*p) ) {
         return 0;
     }
+    if ( !XMLUtil::IsNameStartChar( *p ) ) {
+        return 0;
+    }
 
     char* const start = p;
-
-    while( *p && ( p == start ? XMLUtil::IsNameStartChar( *p ) : XMLUtil::IsNameChar( *p ) )) {
+    ++p;
+    while ( *p && XMLUtil::IsNameChar( *p ) ) {
         ++p;
     }
 
-    if ( p > start ) {
-        Set( start, p, 0 );
-        return p;
-    }
-    return 0;
+    Set( start, p, 0 );
+    return p;
 }