Такая печальная история: пишу свою модель для построения дерева из БД. Вроде, написал, все unit-тесты проходит без вопросов, но на реальном примере, когда её впихиваешь в QTreeView, происходит странное падение: http://pastebin.com/gGqRpJPX. Район падения в GDB:
#0 _int_malloc (av=<value optimized out>, bytes=<value optimized out>) at malloc.c:4436
#1 0x01c5bf9c in *__GI___libc_malloc (bytes=138) at malloc.c:3660
#2 0x012bcb8d in qMalloc (size=138) at global/qmalloc.cpp:55
#3 0x0130fad4 in QString::fromLatin1_helper (str=0x16cb3c0 "TreeResourceModel::parent: No parent row for index %1,%2,%3", size=59)
at tools/qstring.cpp:3603
#4 0x013158f4 in QString::fromAscii_helper (str=0x16cb3c0 "TreeResourceModel::parent: No parent row for index %1,%2,%3", size=88) at tools/qstring.cpp:3638
#5 0x0167ed65 in QString (this=0x82b9838, index=...) at /usr/include/qt4/QtCore/qstring.h:413
#6 IBD::TreeResourceModel::parent (this=0x82b9838, index=...) at ../pkibd-core/libibd-core/treeresourcemodel.cpp:525
#7 0x00b280cd in QModelIndex::parent (this=0x82b43d8, painter=0xbfffd28c, option=..., index=...)
at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:389
#8 QTreeView::drawRow (this=0x82b43d8, painter=0xbfffd28c, option=..., index=...) at itemviews/qtreeview.cpp:1471
#9 0x00b334a9 in QTreeView::drawTree (this=0x82b43d8, painter=0xbfffd28c, region=...) at itemviews/qtreeview.cpp:1433
#10 0x00b365bd in QTreeView::paintEvent (this=0x82b43d8, event=0xbfffdae4) at itemviews/qtreeview.cpp:1266
Пробовал снести весь код из parent() - падает где-то ещё, но тоже в чём-то вызванном из drawRow(). Как я только не изгалялся в тестах с этим parent() - воспроизвести падение не могу, только на живой вьюшке. Гугл тоже ничем не помог.
Буду благодарен за любую идею, как изгнать баг!