On Sat, Dec 03, 2016 at 11:40:49PM +0100, Guillaume Munch wrote: > Le 02/12/2016 à 08:03, Scott Kostyshak a écrit : > > On Sat, Nov 19, 2016 at 12:41:13AM +0100, Guillaume Munch wrote: > > > > > I cannot reproduce with the provided info (2.3dev & Qt5). > > > > A bisect led to b3bed292. The attached patch fixes it for me, although I > > don't understand my patch. > > Hello Scott, > > Nothing too complicated really. An update to lib/unicodesymbols had > introduced characters outside LyX's known blocks (specifically ꜜ and ꜛ > in "Modifier Tone Letters"). Then another bug in the char->block > assignment placed these characters in the next known block, "Hangul > Syllables", so GuiSymbols thought the encoding had Hangul Syllables. But > when you asked for Hangul Syllables, the block->chars assignment did its > job correctly and said there were actually none. So GuiSymbols tried to > initialize a 0-size model for Hangul Syllables. At this point, the > assumption 0 <= symbols.size()-1 is indeed wrong (though it does not > cause the bad access by itself). Your particular bug was fixed by > correcting the char->block assignment. However there were other means to > trigger symbols.size()==0, e.g. when the encoding changes by moving the > cursor, a third issue. There was also an unrelated bad access when > trying to show the tooltip after the end of the list. These bugs are now > fixed, except for the missing names and ranges of the new blocks. > > > What was the point of subtracting 1 from > > symbols.size()? > > > > This is according to the documentation: > https://doc.qt.io/qt-5/qabstractitemmodel.html#beginInsertRows > Inserting from 0 to n informs the view that n+1 lines are inserted. But, > its place is after endResetModel.
Thanks a lot for your explanation! That helps me understand things much better. I tested master and the problem is fixed (Hangul Syllables no longer shows up, which I think is expected since it is empty). I scrolled through all the symbols and everything is smooth. Thank you for your fixes. Scott
signature.asc
Description: PGP signature