Merge pull request #13357 from SimonWalton-HiFi/memcheck-fixes

Entity Script Server memory leak when taking down EntityTree
This commit is contained in:
Clément Brisset 2018-07-05 15:30:45 -07:00 committed by GitHub
commit f2a3907e3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 9 deletions

View file

@ -17,6 +17,9 @@ EntityTreeHeadlessViewer::EntityTreeHeadlessViewer()
}
EntityTreeHeadlessViewer::~EntityTreeHeadlessViewer() {
if (_simulation) {
_simulation->setEntityTree(nullptr); // Break shared_ptr cycle.
}
}
void EntityTreeHeadlessViewer::init() {

View file

@ -571,6 +571,8 @@ void EntityScriptServer::aboutToFinish() {
entityScriptingInterface->setPacketSender(nullptr);
}
DependencyManager::destroy<AssignmentParentFinder>();
DependencyManager::get<ResourceManager>()->cleanup();
DependencyManager::destroy<PluginManager>();

View file

@ -199,7 +199,9 @@ void NLPacket::readVersion() {
}
void NLPacket::readSourceID() {
if (!PacketTypeEnum::getNonSourcedPackets().contains(_type)) {
if (PacketTypeEnum::getNonSourcedPackets().contains(_type)) {
_sourceID = NULL_LOCAL_ID;
} else {
_sourceID = sourceIDInHeader(*this);
}
}

View file

@ -20,12 +20,6 @@
#include "OctreeLogging.h"
OctreeProcessor::OctreeProcessor() :
_tree(NULL),
_managedTree(false)
{
}
void OctreeProcessor::init() {
if (!_tree) {
_tree = createTree();
@ -34,6 +28,9 @@ void OctreeProcessor::init() {
}
OctreeProcessor::~OctreeProcessor() {
if (_tree) {
_tree->eraseAllOctreeElements(false);
}
}
void OctreeProcessor::setTree(OctreePointer newTree) {

View file

@ -28,7 +28,6 @@
class OctreeProcessor : public QObject, public QEnableSharedFromThis<OctreeProcessor> {
Q_OBJECT
public:
OctreeProcessor();
virtual ~OctreeProcessor();
virtual char getMyNodeType() const = 0;
@ -61,7 +60,7 @@ protected:
virtual OctreePointer createTree() = 0;
OctreePointer _tree;
bool _managedTree;
bool _managedTree { false };
SimpleMovingAverage _elementsPerPacket;
SimpleMovingAverage _entitiesPerPacket;