From 17efab59f523e786b5748268be458e4f9a997726 Mon Sep 17 00:00:00 2001 From: John Brooks Date: Wed, 8 Aug 2012 23:38:04 -0400 Subject: [PATCH] Prevent crash from early ConversationModel::fetchMore When called before the model data is ready, this would crash under eventAt. --- src/conversationmodel.cpp | 3 +++ src/eventtreeitem.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp index 7cf44e1..660f9cf 100644 --- a/src/conversationmodel.cpp +++ b/src/conversationmodel.cpp @@ -336,6 +336,9 @@ void ConversationModel::fetchMore(const QModelIndex &parent) Q_UNUSED(parent); Q_D(ConversationModel); + if (!d->isModelReady() || d->eventRootItem->childCount() < 1) + return; + EventsQuery query = d->buildQuery(); Event &event = d->eventRootItem->eventAt(d->eventRootItem->childCount() - 1); diff --git a/src/eventtreeitem.cpp b/src/eventtreeitem.cpp index 202816c..a46edec 100644 --- a/src/eventtreeitem.cpp +++ b/src/eventtreeitem.cpp @@ -79,6 +79,7 @@ EventTreeItem *EventTreeItem::child(int row) Event &EventTreeItem::eventAt(int row) { + Q_ASSERT(row >= 0 && row < children.count()); return children.value(row)->event(); }