From 45a16baaa0d34947c3b69df465be038e2514f30e Mon Sep 17 00:00:00 2001 From: Edoardo Prezioso Date: Sat, 1 Dec 2012 23:58:01 +0100 Subject: [PATCH] Token: try to improve speed of multicompare macro. --- lib/token.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/lib/token.cpp b/lib/token.cpp index 23f0e1518..cc2c1ad51 100644 --- a/lib/token.cpp +++ b/lib/token.cpp @@ -530,23 +530,20 @@ int Token::firstWordLen(const char *str) return len; } -#define multicompare(p,cond,ismulticomp) \ -{ \ - if ((p)[0] != '|') { \ - if (!(cond)) \ - return false; \ - ismulticomp = false; \ - } else { \ - if (cond) { \ - while (*(p) && *(p) != ' ') \ - ++(p); \ - ismulticomp = false; \ - } else { \ - ++(p); \ - ismulticomp = (*(p) && *(p) != ' '); \ - continue; \ - } \ - } \ +#define multicompare(p,cond,ismulticomp) \ +{ \ + if (!(cond)) { \ + if (*(p) != '|') \ + return false; \ + ++(p); \ + ismulticomp = (*(p) && *(p) != ' '); \ + continue; \ + } \ + if (*(p) == '|') { \ + while (*(p) && *(p) != ' ') \ + ++(p); \ + } \ + ismulticomp = false; \ } bool Token::Match(const Token *tok, const char pattern[], unsigned int varid)