> Actually, the problem (I understood it by reading your previous 
> message) is that the tokens_ variable is a vector<Token>, and 
> therefore it can from time to time be reallocated when we do a 
> push_back(). In this case, the references become stale. 

I couldn't reproduce this with a minimal example. 

FYI, I found out that the t.cs() becomes 'crap' after text.cpp:1544. At
this line, there is a call to p.next_token() which will call
tokens_.push_back() somewhere and after this, t.cs() is bogus and thus
the "else-if (t.cs() == "verb")" will always be passed.


>This explains why the bug was so difficult to track down: it does
> not always happen at the same time.

It happens always, and only in a table directly after '\\'. It also
happens for example \textit{..} instead of \verb". It looks perfectly
reproducable. 

So, the vector only 'reallocates' the tokens when a second token is
added.

Still, I don't understand this.

Vincent

Reply via email to