Break simulation/entity-tree cycle

This commit is contained in:
Simon Walton 2018-06-11 13:52:44 -07:00
parent 5ae79bcc5e
commit 99a8ecc6db
2 changed files with 4 additions and 1 deletions

View file

@ -17,6 +17,9 @@ EntityTreeHeadlessViewer::EntityTreeHeadlessViewer()
}
EntityTreeHeadlessViewer::~EntityTreeHeadlessViewer() {
if (_simulation) {
_simulation->setEntityTree(nullptr); // Break shared_ptr cycle.
}
}
void EntityTreeHeadlessViewer::init() {

View file

@ -161,7 +161,7 @@ public:
virtual uint16_t size() const;
bool hasEntities() const { return size() > 0; }
void setTree(EntityTreePointer tree) { _myTree.swap(std::weak_ptr<EntityTree>(tree)); }
void setTree(EntityTreePointer tree) { _myTree = std::weak_ptr<EntityTree>(tree); }
EntityTreePointer getTree() const { return _myTree.lock(); }
void addEntityItem(EntityItemPointer entity);