From 875c6e81e5ed52df46740083451380c4597b560c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 24 Jul 2017 14:08:26 +0200 Subject: Optimize C/C++ lexer --- unit-tests/cc/lexer/driver.cxx | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'unit-tests/cc/lexer') diff --git a/unit-tests/cc/lexer/driver.cxx b/unit-tests/cc/lexer/driver.cxx index 5803a88..53910a6 100644 --- a/unit-tests/cc/lexer/driver.cxx +++ b/unit-tests/cc/lexer/driver.cxx @@ -11,6 +11,7 @@ #include using namespace std; +using namespace butl; namespace build2 { @@ -39,24 +40,16 @@ namespace build2 try { - istream* is; - - // Reading from file is several times faster. - // - ifdstream ifs; + ifdstream is; if (file != nullptr) - { - ifs.open (file); - is = &ifs; - } + is.open (file); else { file = "stdin"; - cin.exceptions (istream::failbit | istream::badbit); - is = &cin; + is.open (fddup (stdin_fd ())); } - lexer l (*is, path (file)); + lexer l (is, path (file)); // No use printing eos since we will either get it or loop forever. // -- cgit v1.1