diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 202e3e3c8a..2c8e968375 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -40,7 +40,13 @@ std::auto_ptr LimitedNodeList::_sharedInstance; LimitedNodeList* LimitedNodeList::createInstance(unsigned short socketListenPort, unsigned short dtlsPort) { NodeType::init(); - delete _sharedInstance.release(); + if (_sharedInstance.get()) { + qDebug() << "LimitedNodeList called with existing instance." << + "Releasing auto_ptr, deleting existing instance and creating a new one."; + + delete _sharedInstance.release(); + } + _sharedInstance = std::auto_ptr(new LimitedNodeList(socketListenPort, dtlsPort)); // register the SharedNodePointer meta-type for signals/slots diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp index c130b72c22..3a1ed79f77 100644 --- a/libraries/networking/src/NodeList.cpp +++ b/libraries/networking/src/NodeList.cpp @@ -28,7 +28,13 @@ NodeList* NodeList::createInstance(char ownerType, unsigned short socketListenPo NodeType::init(); - delete _sharedInstance.release(); + if (_sharedInstance.get()) { + qDebug() << "NodeList called with existing instance." << + "Releasing auto_ptr, deleting existing instance and creating a new one."; + + delete _sharedInstance.release(); + } + _sharedInstance = std::auto_ptr(new NodeList(ownerType, socketListenPort, dtlsPort)); // register the SharedNodePointer meta-type for signals/slots