token : fixed so that TOKEN::_previous is updated when deleting tokens
This commit is contained in:
parent
a19b938665
commit
dd853f0d59
15
token.cpp
15
token.cpp
|
@ -73,7 +73,9 @@ void TOKEN::deleteNext()
|
|||
{
|
||||
TOKEN *n = _next;
|
||||
_next = n->next();
|
||||
delete n;
|
||||
delete n;
|
||||
if (_next)
|
||||
_next->previous(this);
|
||||
}
|
||||
|
||||
const TOKEN *TOKEN::tokAt(int index) const
|
||||
|
@ -389,19 +391,10 @@ void TOKEN::eraseTokens( TOKEN *begin, const TOKEN *end )
|
|||
|
||||
while ( begin->next() && begin->next() != end )
|
||||
{
|
||||
begin->eraseToken();
|
||||
begin->deleteNext();
|
||||
}
|
||||
}
|
||||
|
||||
void TOKEN::eraseToken()
|
||||
{
|
||||
TOKEN *next = this->next();
|
||||
this->next( next->next() );
|
||||
if ( next->next() )
|
||||
next->next()->previous( this );
|
||||
delete next;
|
||||
}
|
||||
|
||||
unsigned int TOKEN::fileIndex() const
|
||||
{
|
||||
return _fileIndex;
|
||||
|
|
2
token.h
2
token.h
|
@ -134,8 +134,6 @@ public:
|
|||
*/
|
||||
static void eraseTokens( TOKEN *begin, const TOKEN *end );
|
||||
|
||||
void eraseToken();
|
||||
|
||||
/**
|
||||
* Insert new token after this token. This function will handle
|
||||
* relations between next and previous token also.
|
||||
|
|
|
@ -584,7 +584,7 @@ void Tokenizer::tokenizeCode(std::istream &code, const unsigned int FileIndex)
|
|||
bool last = TOKEN::Match( tok->next(), "}" );
|
||||
|
||||
// Unlink and delete tok->next()
|
||||
tok->eraseToken();
|
||||
tok->deleteNext();
|
||||
|
||||
// break if this was the last token to delete..
|
||||
if (last)
|
||||
|
|
Loading…
Reference in New Issue