From 6a0c431562c71d28ebf52a3059ac92da91e32b30 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 13 Jan 2014 17:29:45 -0800 Subject: [PATCH] repair add of new node (so it doesn't immediately kill) --- libraries/shared/src/Node.cpp | 2 ++ libraries/shared/src/NodeList.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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();