Vincent van Ravesteijn wrote:

> The other difference I noticed is that on Cygwin and Solaris I get
>> \renewcommand instead of \newcommand. That is, applying your patch,
>> on Debian exporting from the GUI or from command line, produces the
>> same result, but lyx segafaults on exit.
>> On Cygwin and Solaris, exporting from the GUI changes \newcommand
>> into \renewcommand, but lyx quits normally.
>> The joy of multithreading, I suppose.
>>
> 
> I guess the problem is that the class MacroData has a lot of mutable
> variables that are being changed from const metrics() and write()
> functions.

Yes, this is likely. Basically, all these changes are only needed for the 
lazy macros which are created in Buffer.cpp:3229. There is even a FIXME 
comment by Abdel asking why a full macro is not used. After reading the code 
a bit I have to admit that it is quite confusing. Also other parts of the 
macro machinery ignore the constness concept where ever needed.


Georg

Reply via email to