Skip to content
Snippets Groups Projects
Commit 589a1671 authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Fix leak of LLFolderViewModel sorter and filter with unique_ptr

parent 5326e3a2
No related branches found
No related tags found
No related merge requests found
...@@ -419,21 +419,15 @@ class LLFolderViewModel : public LLFolderViewModelCommon ...@@ -419,21 +419,15 @@ class LLFolderViewModel : public LLFolderViewModelCommon
mFilter(filter) mFilter(filter)
{} {}
virtual ~LLFolderViewModel() virtual ~LLFolderViewModel() {}
{
delete mSorter;
mSorter = NULL;
delete mFilter;
mFilter = NULL;
}
virtual SortType& getSorter() { return *mSorter; } virtual SortType& getSorter() { return *mSorter; }
virtual const SortType& getSorter() const { return *mSorter; } virtual const SortType& getSorter() const { return *mSorter; }
virtual void setSorter(const SortType& sorter) { mSorter = new SortType(sorter); requestSortAll(); } virtual void setSorter(const SortType& sorter) { mSorter.reset(new SortType(sorter)); requestSortAll(); }
virtual FilterType& getFilter() { return *mFilter; } virtual FilterType& getFilter() { return *mFilter; }
virtual const FilterType& getFilter() const { return *mFilter; } virtual const FilterType& getFilter() const { return *mFilter; }
virtual void setFilter(const FilterType& filter) { mFilter = new FilterType(filter); } virtual void setFilter(const FilterType& filter) { mFilter.reset(new FilterType(filter)); }
// By default, we assume the content is available. If a network fetch mechanism is implemented for the model, // By default, we assume the content is available. If a network fetch mechanism is implemented for the model,
// this method needs to be overloaded and return the relevant fetch status. // this method needs to be overloaded and return the relevant fetch status.
...@@ -471,8 +465,8 @@ class LLFolderViewModel : public LLFolderViewModelCommon ...@@ -471,8 +465,8 @@ class LLFolderViewModel : public LLFolderViewModelCommon
} }
protected: protected:
SortType* mSorter; std::unique_ptr<SortType> mSorter;
FilterType* mFilter; std::unique_ptr<FilterType> mFilter;
}; };
#endif // LLFOLDERVIEWMODEL_H #endif // LLFOLDERVIEWMODEL_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment