Symbol database: improved handling of array members

This commit is contained in:
Robert Reif 2013-07-20 17:51:13 +02:00 committed by Daniel Marjamäki
parent 37716fb8bb
commit e6ab8f478b
1 changed files with 4 additions and 2 deletions

View File

@ -858,8 +858,10 @@ SymbolDatabase::SymbolDatabase(const Tokenizer *tokenizer, const Settings *setti
const Scope *func = functionScopes[i]; const Scope *func = functionScopes[i];
for (const Token *tok = func->classStart->next(); tok != func->classEnd; tok = tok->next()) { for (const Token *tok = func->classStart->next(); tok != func->classEnd; tok = tok->next()) {
// check for member variable // check for member variable
if (tok && tok->varId() && tok->next() && tok->next()->str() == ".") { if (tok && tok->varId() && tok->next() &&
const Token *tok1 = tok->tokAt(2); (tok->next()->str() == "." ||
(tok->next()->str() == "[" && tok->linkAt(1)->strAt(1) == "."))) {
const Token *tok1 = tok->next()->str() == "." ? tok->tokAt(2) : tok->linkAt(1)->tokAt(2);
if (tok1 && tok1->varId() && _variableList[tok1->varId()] == 0) { if (tok1 && tok1->varId() && _variableList[tok1->varId()] == 0) {
const Variable *var = _variableList[tok->varId()]; const Variable *var = _variableList[tok->varId()];
if (var && var->typeScope()) { if (var && var->typeScope()) {