On Tuesday 25 September 2001 15:59, Martijn Klingens wrote: > On Tuesday 25 September 2001 15:37, David Faure wrote: > > Without knowing the code much, this looks very much like any parser > > you'd write: there is a pointer to the current char being parsed, > > and this pointer has to be passed by reference so that it gets updated > > in the caller ! > > So the "workaround" is correct, assuming you have a single thing to parse > > and that parseRule will do it all. > > Ooooooh... I never expected that the code would actually change the curP > argument, since it is const. > > And here my C++ knowledge is a bit faint, probably... > > I expected 'const QChar * &' to be a non-const pointer to a reference to a > const QChar. In that case the reference would be pointless as it would be > referencing const data. But I probably was wrong there... It's a reference to a (onst QChar *). const QChar * means a pointer to a const QChar, so you're not allowed to change the contents of the parsed string, but you can still change the const QChar the pointer is pointing to. If you want a pointer you can't change, you'll have to use "const QChar * const". > Anyway, I can now assume my workaround is sane and continue with my other > problems. I hope to have a patch ready for review before I return home > today. It is. I just didn't look close enough. The old code would have given you some memory corruption at some point. Cheers, Lars