[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/sdk/kdevplatform/language/duchain
From: Niko Sams <niko.sams () gmail ! com>
Date: 2010-02-20 17:24:38
Message-ID: 1266686678.158158.10768.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1093349 by nsams:
Update symbol table when base classes changed.
This makes it possible to store flags dependent on the base classes in the symbol table.
It is used in php for a Exception flag for classes that extend Exception.
M +9 -0 classdeclaration.cpp
--- trunk/extragear/sdk/kdevplatform/language/duchain/classdeclaration.cpp #1093348:1093349
@@ -50,7 +50,10 @@
REGISTER_DUCHAIN_ITEM(ClassDeclaration);
void ClassDeclaration::clearBaseClasses() {
+ bool wasInSymbolTable = inSymbolTable();
+ setInSymbolTable(false);
d_func_dynamic()->baseClassesList().clear();
+ setInSymbolTable(wasInSymbolTable);
}
uint ClassDeclaration::baseClassesSize() const {
@@ -62,12 +65,18 @@
}
void ClassDeclaration::addBaseClass(BaseClassInstance klass) {
+ bool wasInSymbolTable = inSymbolTable();
+ setInSymbolTable(false);
d_func_dynamic()->baseClassesList().append(klass);
+ setInSymbolTable(wasInSymbolTable);
}
void ClassDeclaration::replaceBaseClass(uint n, BaseClassInstance klass) {
Q_ASSERT(n <= d_func()->baseClassesSize());
+ bool wasInSymbolTable = inSymbolTable();
+ setInSymbolTable(false);
d_func_dynamic()->baseClassesList()[n] = klass;
+ setInSymbolTable(wasInSymbolTable);
}
ClassDeclaration::~ClassDeclaration()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic