Переглянути джерело

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;
 }