Browse Source

LibGUI: Fix CppLexer assertion on incomplete #include statements

Thanks to @NotKyon for reporting this bug with a solid analysis.

Fixes #1488.
Andreas Kling 5 years ago
parent
commit
37af1d74cc
1 changed files with 5 additions and 5 deletions
  1. 5 5
      Libraries/LibGUI/CppLexer.cpp

+ 5 - 5
Libraries/LibGUI/CppLexer.cpp

@@ -363,16 +363,16 @@ Vector<CppToken> CppLexer::lex()
                 begin_token();
                 if (peek() == '<' || peek() == '"') {
                     char closing = consume() == '<' ? '>' : '"';
-                    while (peek() != closing && peek() != '\n')
+                    while (peek() && peek() != closing && peek() != '\n')
                         consume();
 
-                    if (consume() == '\n') {
+                    if (peek() && consume() == '\n') {
                         commit_token(CppToken::Type::IncludePath);
                         continue;
-                    } else {
-                        commit_token(CppToken::Type::IncludePath);
-                        begin_token();
                     }
+
+                    commit_token(CppToken::Type::IncludePath);
+                    begin_token();
                 }
             }