diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-10-07 13:56:59 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-10-07 13:57:45 +0200 |
commit | 77aa3064783d64cc7d028772a59f13e5f0cd4780 (patch) | |
tree | fb60c890f6d95be999d0e39afd7291a6dc5e25fe /src/shared/cplusplus | |
parent | 07f05c8ef09af53e2fdbe4a46823396aecab5f39 (diff) | |
download | qt-creator-77aa3064783d64cc7d028772a59f13e5f0cd4780.tar.gz |
Removed the MacroResolver
Unfortunately, the MacroResolver does not scale and we get pretty bad performances when parsing big projects.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/CPlusPlusForwardDeclarations.h | 1 | ||||
-rw-r--r-- | src/shared/cplusplus/Control.cpp | 15 | ||||
-rw-r--r-- | src/shared/cplusplus/Control.h | 15 | ||||
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 12 | ||||
-rw-r--r-- | src/shared/cplusplus/Parser.h | 2 |
5 files changed, 1 insertions, 44 deletions
diff --git a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h index 2467d4c56b..b060f11dfa 100644 --- a/src/shared/cplusplus/CPlusPlusForwardDeclarations.h +++ b/src/shared/cplusplus/CPlusPlusForwardDeclarations.h @@ -83,7 +83,6 @@ class Semantic; class Control; class MemoryPool; class DiagnosticClient; -class MacroResolver; class Identifier; class Literal; diff --git a/src/shared/cplusplus/Control.cpp b/src/shared/cplusplus/Control.cpp index 6338d99fd2..30c5552bbe 100644 --- a/src/shared/cplusplus/Control.cpp +++ b/src/shared/cplusplus/Control.cpp @@ -59,11 +59,6 @@ CPLUSPLUS_BEGIN_NAMESPACE -MacroResolver::MacroResolver() -{ } - -MacroResolver::~MacroResolver() -{ } template <typename _Iterator> static void delete_map_entries(_Iterator first, _Iterator last) @@ -93,8 +88,7 @@ public: Data(Control *control) : control(control), translationUnit(0), - diagnosticClient(0), - macroResolver(0) + diagnosticClient(0) { } ~Data() @@ -539,7 +533,6 @@ public: Control *control; TranslationUnit *translationUnit; DiagnosticClient *diagnosticClient; - MacroResolver *macroResolver; LiteralTable<Identifier> identifiers; LiteralTable<StringLiteral> stringLiterals; LiteralTable<NumericLiteral> numericLiterals; @@ -602,12 +595,6 @@ TranslationUnit *Control::switchTranslationUnit(TranslationUnit *unit) return previousTranslationUnit; } -MacroResolver *Control::macroResolver() const -{ return d->macroResolver; } - -void Control::setMacroResolver(MacroResolver *macroResolver) -{ d->macroResolver = macroResolver; } - DiagnosticClient *Control::diagnosticClient() const { return d->diagnosticClient; } diff --git a/src/shared/cplusplus/Control.h b/src/shared/cplusplus/Control.h index 060be182b6..9a41629fea 100644 --- a/src/shared/cplusplus/Control.h +++ b/src/shared/cplusplus/Control.h @@ -55,18 +55,6 @@ CPLUSPLUS_BEGIN_HEADER CPLUSPLUS_BEGIN_NAMESPACE -class CPLUSPLUS_EXPORT MacroResolver -{ - MacroResolver(const MacroResolver &other); - void operator = (const MacroResolver &other); - -public: - MacroResolver(); - virtual ~MacroResolver(); - - virtual bool isMacro(TranslationUnit *unit, unsigned tokenIndex) const = 0; -}; - class CPLUSPLUS_EXPORT Control { public: @@ -76,9 +64,6 @@ public: TranslationUnit *translationUnit() const; TranslationUnit *switchTranslationUnit(TranslationUnit *unit); - MacroResolver *macroResolver() const; - void setMacroResolver(MacroResolver *macroResolver); - DiagnosticClient *diagnosticClient() const; void setDiagnosticClient(DiagnosticClient *diagnosticClient); diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index d335b5ebff..958d740a58 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -244,14 +244,6 @@ void Parser::match(int kind, unsigned *token) } } -bool Parser::isMacro(unsigned tokenIndex) const -{ - if (MacroResolver *r = _control->macroResolver()) - return r->isMacro(_translationUnit, tokenIndex); - - return false; -} - bool Parser::parseClassOrNamespaceName(NameAST *&node) { if (LA() == T_IDENTIFIER) { @@ -2561,10 +2553,6 @@ bool Parser::parseBuiltinTypeSpecifier(SpecifierAST *&node) bool Parser::parseSimpleDeclaration(DeclarationAST *&node, bool acceptStructDeclarator) { - if (LA() == T_IDENTIFIER && isMacro(cursor())) { - // printf("***** found macro reference `%s'\n", tok().identifier->chars()); - } - unsigned qt_invokable_token = 0; if (acceptStructDeclarator && (LA() == T_Q_SIGNAL || LA() == T_Q_SLOT)) qt_invokable_token = consumeToken(); diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h index 1bd6700f53..2f274e93ab 100644 --- a/src/shared/cplusplus/Parser.h +++ b/src/shared/cplusplus/Parser.h @@ -286,8 +286,6 @@ private: inline void rewind(unsigned cursor) { _tokenIndex = cursor; } - bool isMacro(unsigned tokenIndex) const; - private: TranslationUnit *_translationUnit; Control *_control; |