Tokenizer::simplifyTypedef: some optimizations on new code.
This commit is contained in:
parent
7cd36f44b6
commit
11e724df46
|
@ -1147,11 +1147,13 @@ void Tokenizer::simplifyTypedef()
|
||||||
// name token wasn't a name, it was part of the type
|
// name token wasn't a name, it was part of the type
|
||||||
typeEnd = typeEnd->next();
|
typeEnd = typeEnd->next();
|
||||||
functionPtr = true;
|
functionPtr = true;
|
||||||
funcStart = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
funcEnd = tokOffset->next();
|
funcStart = tokOffset;
|
||||||
typeName = tokOffset->tokAt(2);
|
funcEnd = tokOffset;
|
||||||
argStart = tokOffset->tokAt(4);
|
tokOffset = tokOffset->tokAt(3);
|
||||||
argEnd = tokOffset->linkAt(4);
|
typeName = tokOffset->tokAt(-2);
|
||||||
|
argStart = tokOffset;
|
||||||
|
argEnd = tokOffset->link();
|
||||||
tok = argEnd->next();
|
tok = argEnd->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1221,10 +1223,11 @@ void Tokenizer::simplifyTypedef()
|
||||||
else
|
else
|
||||||
function = true;
|
function = true;
|
||||||
funcStart = tokOffset->next();
|
funcStart = tokOffset->next();
|
||||||
funcEnd = tokOffset->link()->tokAt(-2);
|
tokOffset = tokOffset->link();
|
||||||
typeName = tokOffset->link()->previous();
|
funcEnd = tokOffset->tokAt(-2);
|
||||||
argStart = tokOffset->link()->next();
|
typeName = tokOffset->previous();
|
||||||
argEnd = tokOffset->link()->next()->link();
|
argStart = tokOffset->next();
|
||||||
|
argEnd = tokOffset->next()->link();
|
||||||
tok = argEnd->next();
|
tok = argEnd->next();
|
||||||
Token *spec = tok;
|
Token *spec = tok;
|
||||||
if (Token::Match(spec, "const|volatile")) {
|
if (Token::Match(spec, "const|volatile")) {
|
||||||
|
@ -1243,10 +1246,11 @@ void Tokenizer::simplifyTypedef()
|
||||||
else if (Token::Match(tokOffset, "( %type% (")) {
|
else if (Token::Match(tokOffset, "( %type% (")) {
|
||||||
function = true;
|
function = true;
|
||||||
if (tokOffset->link()->next()) {
|
if (tokOffset->link()->next()) {
|
||||||
typeName = tokOffset->next();
|
|
||||||
argStart = tokOffset->tokAt(2);
|
|
||||||
argEnd = tokOffset->linkAt(2);
|
|
||||||
tok = tokOffset->link()->next();
|
tok = tokOffset->link()->next();
|
||||||
|
tokOffset = tokOffset->tokAt(2);
|
||||||
|
typeName = tokOffset->previous();
|
||||||
|
argStart = tokOffset;
|
||||||
|
argEnd = tokOffset->link();
|
||||||
} else {
|
} else {
|
||||||
// internal error
|
// internal error
|
||||||
continue;
|
continue;
|
||||||
|
@ -1259,12 +1263,13 @@ void Tokenizer::simplifyTypedef()
|
||||||
Token::Match(tokOffset->linkAt(6)->linkAt(2), ") ;|,")) {
|
Token::Match(tokOffset->linkAt(6)->linkAt(2), ") ;|,")) {
|
||||||
functionPtrRetFuncPtr = true;
|
functionPtrRetFuncPtr = true;
|
||||||
|
|
||||||
typeName = tokOffset->tokAt(4);
|
tokOffset = tokOffset->tokAt(6);
|
||||||
argStart = tokOffset->tokAt(6);
|
typeName = tokOffset->tokAt(-2);
|
||||||
argEnd = tokOffset->linkAt(6);
|
argStart = tokOffset;
|
||||||
|
argEnd = tokOffset->link();
|
||||||
|
|
||||||
argFuncRetStart = argEnd->tokAt(2);
|
argFuncRetStart = argEnd->tokAt(2);
|
||||||
argFuncRetEnd = argEnd->linkAt(2);
|
argFuncRetEnd = argFuncRetStart->link();
|
||||||
|
|
||||||
tok = argFuncRetEnd->next();
|
tok = argFuncRetEnd->next();
|
||||||
}
|
}
|
||||||
|
@ -1275,23 +1280,25 @@ void Tokenizer::simplifyTypedef()
|
||||||
Token::Match(tokOffset->linkAt(3)->linkAt(2), ") ;|,")) {
|
Token::Match(tokOffset->linkAt(3)->linkAt(2), ") ;|,")) {
|
||||||
functionRetFuncPtr = true;
|
functionRetFuncPtr = true;
|
||||||
|
|
||||||
typeName = tokOffset->tokAt(2);
|
tokOffset = tokOffset->tokAt(3);
|
||||||
argStart = tokOffset->tokAt(3);
|
typeName = tokOffset->previous();
|
||||||
argEnd = tokOffset->linkAt(3);
|
argStart = tokOffset;
|
||||||
|
argEnd = tokOffset->link();
|
||||||
|
|
||||||
argFuncRetStart = argEnd->tokAt(2);
|
argFuncRetStart = argEnd->tokAt(2);
|
||||||
argFuncRetEnd = argEnd->linkAt(2);
|
argFuncRetEnd = argFuncRetStart->link();
|
||||||
|
|
||||||
tok = argFuncRetEnd->next();
|
tok = argFuncRetEnd->next();
|
||||||
} else if (Token::Match(tokOffset, "( * ( %type% ) (")) {
|
} else if (Token::Match(tokOffset, "( * ( %type% ) (")) {
|
||||||
functionRetFuncPtr = true;
|
functionRetFuncPtr = true;
|
||||||
|
|
||||||
typeName = tokOffset->tokAt(3);
|
tokOffset = tokOffset->tokAt(5);
|
||||||
argStart = tokOffset->tokAt(5);
|
typeName = tokOffset->tokAt(-2);
|
||||||
argEnd = tokOffset->linkAt(5);
|
argStart = tokOffset;
|
||||||
|
argEnd = tokOffset->link();
|
||||||
|
|
||||||
argFuncRetStart = argEnd->tokAt(2);
|
argFuncRetStart = argEnd->tokAt(2);
|
||||||
argFuncRetEnd = argEnd->linkAt(2);
|
argFuncRetEnd = argFuncRetStart->link();
|
||||||
|
|
||||||
tok = argFuncRetEnd->next();
|
tok = argFuncRetEnd->next();
|
||||||
}
|
}
|
||||||
|
@ -1300,19 +1307,22 @@ void Tokenizer::simplifyTypedef()
|
||||||
else if (Token::Match(tokOffset, "( *|& %type% ) [")) {
|
else if (Token::Match(tokOffset, "( *|& %type% ) [")) {
|
||||||
ptrToArray = (tokOffset->next()->str() == "*");
|
ptrToArray = (tokOffset->next()->str() == "*");
|
||||||
refToArray = (tokOffset->next()->str() == "&");
|
refToArray = (tokOffset->next()->str() == "&");
|
||||||
typeName = tokOffset->tokAt(2);
|
tokOffset = tokOffset->tokAt(2);
|
||||||
arrayStart = tokOffset->tokAt(4);
|
typeName = tokOffset;
|
||||||
|
arrayStart = tokOffset->tokAt(2);
|
||||||
arrayEnd = arrayStart->link();
|
arrayEnd = arrayStart->link();
|
||||||
tok = arrayEnd->next();
|
tok = arrayEnd->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
// pointer to class member
|
// pointer to class member
|
||||||
else if (Token::Match(tokOffset, "( %type% :: * %type% ) ;")) {
|
else if (Token::Match(tokOffset, "( %type% :: * %type% ) ;")) {
|
||||||
namespaceStart = tokOffset->next();
|
tokOffset = tokOffset->tokAt(2);
|
||||||
namespaceEnd = tokOffset->tokAt(2);
|
namespaceStart = tokOffset->previous();
|
||||||
|
namespaceEnd = tokOffset;
|
||||||
ptrMember = true;
|
ptrMember = true;
|
||||||
typeName = tokOffset->tokAt(4);
|
tokOffset = tokOffset->tokAt(2);
|
||||||
tok = tokOffset->tokAt(6);
|
typeName = tokOffset;
|
||||||
|
tok = tokOffset->tokAt(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// unhandled typedef, skip it and continue
|
// unhandled typedef, skip it and continue
|
||||||
|
|
Loading…
Reference in New Issue