repair add of new node (so it doesn't immediately kill)

This commit is contained in:
Stephen Birarda 2014-01-13 17:29:45 -08:00
parent 677303b5c0
commit 6a0c431562
2 changed files with 6 additions and 3 deletions

View file

@ -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();
}

View file

@ -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();