diff options
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/Symbol.cpp | 11 | ||||
-rw-r--r-- | src/shared/cplusplus/Symbol.h | 9 |
2 files changed, 8 insertions, 12 deletions
diff --git a/src/shared/cplusplus/Symbol.cpp b/src/shared/cplusplus/Symbol.cpp index 6c506c1700..93725ee224 100644 --- a/src/shared/cplusplus/Symbol.cpp +++ b/src/shared/cplusplus/Symbol.cpp @@ -161,7 +161,7 @@ private: }; Symbol::Symbol(TranslationUnit *translationUnit, unsigned sourceLocation, const Name *name) - : _translationUnit(translationUnit), + : _control(translationUnit->control()), _sourceLocation(sourceLocation), _sourceOffset(0), _startOffset(0), @@ -183,15 +183,10 @@ Symbol::~Symbol() { } Control *Symbol::control() const -{ - if (_translationUnit) - return _translationUnit->control(); - - return 0; -} +{ return _control; } TranslationUnit *Symbol::translationUnit() const -{ return _translationUnit; } +{ return _control->translationUnit(); } void Symbol::visitSymbol(SymbolVisitor *visitor) { diff --git a/src/shared/cplusplus/Symbol.h b/src/shared/cplusplus/Symbol.h index f45ce88c0c..628261b4b9 100644 --- a/src/shared/cplusplus/Symbol.h +++ b/src/shared/cplusplus/Symbol.h @@ -87,9 +87,6 @@ public: /// Destroy this Symbol. virtual ~Symbol(); - /// Returns this Symbol's Control object. - Control *control() const; - /// Returns this Symbol's source location. unsigned sourceLocation() const; @@ -323,10 +320,14 @@ public: protected: virtual void visitSymbol0(SymbolVisitor *visitor) = 0; + /// Returns this Symbol's Control object. + Control *control() const; + + /// Returns this Symbol's TranslationUnit. TranslationUnit *translationUnit() const; private: - TranslationUnit *_translationUnit; + Control *_control; unsigned _sourceLocation; unsigned _sourceOffset; unsigned _startOffset; |