diff --git a/libraries/shared/src/Node.cpp b/libraries/shared/src/Node.cpp index 739c1c03a9..36ee1682a6 100644 --- a/libraries/shared/src/Node.cpp +++ b/libraries/shared/src/Node.cpp @@ -39,6 +39,8 @@ Node::Node(const QUuid& uuid, char type, const HifiSockAddr& publicSocket, const } Node::~Node() { + qDebug() << "Destructor for node with UUID" << _uuid << "called.\n"; + if (_linkedData) { _linkedData->deleteOrDeleteLater(); } diff --git a/libraries/shared/src/NodeList.cpp b/libraries/shared/src/NodeList.cpp index 46bc8391e5..fc6dc1851e 100644 --- a/libraries/shared/src/NodeList.cpp +++ b/libraries/shared/src/NodeList.cpp @@ -684,14 +684,15 @@ SharedNodePointer NodeList::addOrUpdateNode(const QUuid& uuid, char nodeType, if (matchingNodeItem == _nodeHash.end()) { // we didn't have this node, so add them Node* newNode = new Node(uuid, nodeType, publicSocket, localSocket); + SharedNodePointer newNodeSharedPointer(newNode, &QObject::deleteLater); - NodeHash::iterator addedItem = _nodeHash.insert(newNode->getUUID(), SharedNodePointer(newNode, &QObject::deleteLater)); + _nodeHash.insert(newNode->getUUID(), newNodeSharedPointer); qDebug() << "Added" << *newNode << "\n"; - emit nodeAdded(addedItem.value()); + emit nodeAdded(newNodeSharedPointer); - return SharedNodePointer(newNode); + return newNodeSharedPointer; } else { SharedNodePointer node = matchingNodeItem.value(); matchingNodeItem.value()->lock();