summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2009-02-05 15:06:29 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2009-02-05 15:06:48 +0100
commit68552b8f4d88f31462270f66774dcc9ec6755c1a (patch)
tree126756d4a6ea2a3e72d55ff7677c76730866b438 /src/shared/cplusplus/Parser.cpp
parentad5bdf6969d250bc138f5cd1d2b92be8b5c4dc6d (diff)
downloadqt-creator-68552b8f4d88f31462270f66774dcc9ec6755c1a.tar.gz
Added fast lookup of objc type qualifiers.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 5268ce9e32..6fb2da600d 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -56,6 +56,7 @@
#include "Control.h"
#include "AST.h"
#include "Literals.h"
+#include "ObjectiveCTypeQualifiers.h"
#include <cstdlib>
#include <cstring>
#include <cassert>
@@ -4043,16 +4044,11 @@ bool Parser::parseObjCTypeQualifiers()
return false;
Identifier *id = tok().identifier;
- if (! strcmp("in", id->chars()) ||
- ! strcmp("out", id->chars()) ||
- ! strcmp("inout", id->chars()) ||
- ! strcmp("bycopy", id->chars()) ||
- ! strcmp("byref", id->chars()) ||
- ! strcmp("oneway", id->chars())) {
- consumeToken();
- return true;
- }
- return false;
+ const int k = classifyObjectiveCTypeQualifiers(id->chars(), id->size());
+ if (k == Token_identifier)
+ return false;
+ consumeToken();
+ return true;
}
// objc-end: T_AT_END