From b5465cd8d0e719374eddda0222d0a14495a98d10 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 9 May 2025 15:09:54 -0400 Subject: [PATCH] Fix one more ownership issue that causes crashes when switching rooms I was hitting one more annoying crash with a backtrace inside QCache, because we didn't set the ownership propetly for one last model. Now I don't hit it anymore. --- src/timeline/contentprovider.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/timeline/contentprovider.cpp b/src/timeline/contentprovider.cpp index 824dc4399..216d0543b 100644 --- a/src/timeline/contentprovider.cpp +++ b/src/timeline/contentprovider.cpp @@ -53,8 +53,9 @@ MessageContentModel *ContentProvider::contentModelForEvent(NeoChatRoom *room, co auto eventId = event->id(); const auto txnId = event->transactionId(); if (!m_eventContentModels.contains(eventId) && !m_eventContentModels.contains(txnId)) { - m_eventContentModels.insert(eventId.isEmpty() ? txnId : eventId, - new MessageContentModel(room, eventId.isEmpty() ? txnId : eventId, isReply, eventId.isEmpty())); + auto model = new MessageContentModel(room, eventId.isEmpty() ? txnId : eventId, isReply, eventId.isEmpty()); + QQmlEngine::setObjectOwnership(model, QQmlEngine::CppOwnership); + m_eventContentModels.insert(eventId.isEmpty() ? txnId : eventId, model); } if (!eventId.isEmpty() && m_eventContentModels.contains(eventId)) {