Dear Petr, Thank you for the reminder of this issue. My apologies for not getting to it earlier.
> > > > I do not understand the code either. I just wonder if it would make > > sense to check for: > > > > while (++nCharIndex - mnMinCharPos < > > static_cast<int>(mvChar2BaseGlyph.size())) > > > > As the array is accessed as mvChar2BaseGlyph[nCharIndex-mnMinCharPos]. > > Otherwise, the cycle might end too early. > > > > Another conservative solution would be to combine it with the original > > check: > > > > while (++nCharIndex < static_cast<int>(mvGlyph2Char.size()) && > > nCharIndex - mnMinCharPos < > > static_cast<int>(mvChar2BaseGlyph.size())) > > Any other opinion here, please? I would go with the first of these. It makes no sense to compare a charIndex against a glyph->char mapping array, whose size is the number of glyphs, not characters. I think it is simply a bug. Notice that I am not claiming authoritative understanding of this code since it was written by Keith, who unfortunately is no longer with us and so cannot comment. I am hoping that when I eventually get time to work on this code, and particularly the mac port, I can refactor the code and gain the necessary authoritative confidence. Yours, Martin _______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
