mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
Use weak_ptr<EntityTree> for pointers back to parent
This commit is contained in:
parent
e3c8895c89
commit
5ae79bcc5e
2 changed files with 6 additions and 6 deletions
|
@ -33,7 +33,7 @@ EntityTreeElement::~EntityTreeElement() {
|
|||
|
||||
OctreeElementPointer EntityTreeElement::createNewElement(unsigned char* octalCode) {
|
||||
auto newChild = EntityTreeElementPointer(new EntityTreeElement(octalCode));
|
||||
newChild->setTree(_myTree);
|
||||
newChild->setTree(getTree());
|
||||
return newChild;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ void EntityTreeElement::init(unsigned char* octalCode) {
|
|||
|
||||
OctreeElementPointer EntityTreeElement::addChildAtIndex(int index) {
|
||||
OctreeElementPointer newElement = OctreeElement::addChildAtIndex(index);
|
||||
std::static_pointer_cast<EntityTreeElement>(newElement)->setTree(_myTree);
|
||||
std::static_pointer_cast<EntityTreeElement>(newElement)->setTree(getTree());
|
||||
return newElement;
|
||||
}
|
||||
|
||||
|
@ -475,7 +475,7 @@ bool EntityTreeElement::removeEntityItem(EntityItemPointer entity, bool deletion
|
|||
|
||||
int EntityTreeElement::readElementDataFromBuffer(const unsigned char* data, int bytesLeftToRead,
|
||||
ReadBitstreamToTreeParams& args) {
|
||||
return _myTree->readEntityDataFromBuffer(data, bytesLeftToRead, args);
|
||||
return getTree()->readEntityDataFromBuffer(data, bytesLeftToRead, args);
|
||||
}
|
||||
|
||||
void EntityTreeElement::addEntityItem(EntityItemPointer entity) {
|
||||
|
|
|
@ -161,8 +161,8 @@ public:
|
|||
virtual uint16_t size() const;
|
||||
bool hasEntities() const { return size() > 0; }
|
||||
|
||||
void setTree(EntityTreePointer tree) { _myTree = tree; }
|
||||
EntityTreePointer getTree() const { return _myTree; }
|
||||
void setTree(EntityTreePointer tree) { _myTree.swap(std::weak_ptr<EntityTree>(tree)); }
|
||||
EntityTreePointer getTree() const { return _myTree.lock(); }
|
||||
|
||||
void addEntityItem(EntityItemPointer entity);
|
||||
|
||||
|
@ -234,7 +234,7 @@ public:
|
|||
|
||||
protected:
|
||||
virtual void init(unsigned char * octalCode) override;
|
||||
EntityTreePointer _myTree;
|
||||
std::weak_ptr<EntityTree> _myTree;
|
||||
EntityItems _entityItems;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue