]> granicus.if.org Git - clang/commitdiff
PTHLexer::isNextPPTokenLParen() no longer calls GetToken() and just reads the token...
authorTed Kremenek <kremenek@apple.com>
Wed, 17 Dec 2008 23:08:31 +0000 (23:08 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 17 Dec 2008 23:08:31 +0000 (23:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61168 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Lex/PTHLexer.h

index 7654a396535cedf4f1660376650d230c310a5439..34e0b8a9fbdc0f022fb6a43a17eda5634aaac7d5 100644 (file)
@@ -76,8 +76,13 @@ public:
   /// tok::l_paren token, 0 if it is something else and 2 if there are no more
   /// tokens controlled by this lexer.
   unsigned isNextPPTokenLParen() {
-    return AtLastToken() ? 2 : GetToken().is(tok::l_paren);
-  }
+    // isNextPPTokenLParen is not on the hot path, and all we care about is
+    // whether or not we are at a token with kind tok::eof or tok::l_paren.
+    // Just read the first byte from the current token pointer to determine
+    // its kind.
+    tok::TokenKind x = (tok::TokenKind) (uint8_t) *CurPtr;
+    return x == tok::eof ? 2 : x == tok::l_paren;
+  }    
 
   /// IndirectLex - An indirect call to 'Lex' that can be invoked via
   ///  the PreprocessorLexer interface.