From 281c3d8beec393de9afced57c6756d0d367a1c77 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev <andreykproductengine@lindenlab.com> Date: Thu, 5 Nov 2020 21:40:54 +0200 Subject: [PATCH] SL-14270 Crash accessing deleted 'parent' via callback from child --- indra/llui/llfolderviewmodel.cpp | 5 +++++ indra/llui/llfolderviewmodel.h | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/indra/llui/llfolderviewmodel.cpp b/indra/llui/llfolderviewmodel.cpp index 3b45fb53a21..58a1ef646a3 100644 --- a/indra/llui/llfolderviewmodel.cpp +++ b/indra/llui/llfolderviewmodel.cpp @@ -29,6 +29,11 @@ #include "llfolderviewmodel.h" #include "lltrans.h" +LLFolderViewModelItemCommon::~LLFolderViewModelItemCommon() +{ + clearChildren(); +} + bool LLFolderViewModelCommon::needsSort(LLFolderViewModelItem* item) { return item->getSortVersion() < mTargetSortVersion; diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h index f71a88c56e8..903049b9af1 100644 --- a/indra/llui/llfolderviewmodel.h +++ b/indra/llui/llfolderviewmodel.h @@ -248,6 +248,8 @@ class LLFolderViewModelItemCommon : public LLFolderViewModelItem mChildren.clear(); } + virtual ~LLFolderViewModelItemCommon(); + void requestSort() { mSortVersion = -1; } S32 getSortVersion() { return mSortVersion; } void setSortVersion(S32 version) { mSortVersion = version;} @@ -399,6 +401,8 @@ class LLFolderViewModelCommon : public LLFolderViewModelInterface mFolderView(NULL) {} + virtual ~LLFolderViewModelCommon() {} + virtual void requestSortAll() { // sort everything -- GitLab