DarkRadiant: favourites b13ba221
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
greebo | greebo | favourites | 02.01.2021 09:18 | favourites 3a7b0130 |
Affected Issues | 0005127: Managing favorite resources (entities, textures,...) | |||
Changeset | 0005127: Fix crashes when destroying Populator objects deriving from ThreadedResourceTreePopulator and introducing their own members. Due to C++ dtor execution order threads will crash when the base class ThreadedResourceTreePopulator calls Delete(). The 100% solution would be to disallow subclassing from wxThread, but I'd like to keep the abstraction and the code re-use - therefore deriving classes must invoke EnsureStopped in their destructors. If they fail to do so, there's another safety measure in ResourceTreeView to call EnsureStopped before releasing the instance, to give classes a chance to clean up while the hierarchy is still intact. |
|||
mod - libs/wxutil/dataview/IResourceTreePopulator.h | Diff File | |||
mod - libs/wxutil/dataview/ResourceTreeView.cpp | Diff File | |||
mod - libs/wxutil/dataview/ResourceTreeView.h | Diff File | |||
mod - libs/wxutil/dataview/ThreadedResourceTreePopulator.h | Diff File | |||
mod - radiant/ui/mediabrowser/MediaBrowserTreeView.cpp | Diff File | |||
mod - radiant/ui/mediabrowser/MediaBrowserTreeView.h | Diff File |