From bca00db4a8f4d0d74cc3b8e3d014333c847d1642 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 16 Sep 2015 11:48:15 -0700 Subject: [PATCH] use unique_ptr for Agent ScriptEngine --- assignment-client/src/Agent.cpp | 13 +++---------- assignment-client/src/Agent.h | 3 ++- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index f2d73bd1a6..58d8c931f8 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -153,11 +153,11 @@ void Agent::run() { qDebug() << "Downloaded script:" << scriptContents; - _scriptEngine = new ScriptEngine(scriptContents, _payload); + _scriptEngine = std::unique_ptr(new ScriptEngine(scriptContents, _payload)); _scriptEngine->setParent(this); // be the parent of the script engine so it gets moved when we do // setup an Avatar for the script to use - ScriptableAvatar scriptedAvatar(_scriptEngine); + ScriptableAvatar scriptedAvatar(_scriptEngine.get()); scriptedAvatar.setForceFaceTrackerConnected(true); // call model URL setters with empty URLs so our avatar, if user, will have the default models @@ -202,17 +202,10 @@ void Agent::run() { entityScriptingInterface->setEntityTree(_entityViewer.getTree()); // wire up our additional agent related processing to the update signal - QObject::connect(_scriptEngine, &ScriptEngine::update, this, &Agent::processAgentAvatarAndAudio); + QObject::connect(_scriptEngine.get(), &ScriptEngine::update, this, &Agent::processAgentAvatarAndAudio); _scriptEngine->run(); setFinished(true); - - // kill the avatar identity timer - delete _avatarIdentityTimer; - - // delete the script engine - delete _scriptEngine; - } void Agent::setIsAvatar(bool isAvatar) { diff --git a/assignment-client/src/Agent.h b/assignment-client/src/Agent.h index 33a8eb58c2..ab000015d5 100644 --- a/assignment-client/src/Agent.h +++ b/assignment-client/src/Agent.h @@ -12,6 +12,7 @@ #ifndef hifi_Agent_h #define hifi_Agent_h +#include #include #include @@ -61,7 +62,7 @@ private slots: void processAgentAvatarAndAudio(float deltaTime); private: - ScriptEngine* _scriptEngine; + std::unique_ptr _scriptEngine; EntityEditPacketSender _entityEditSender; EntityTreeHeadlessViewer _entityViewer; QTimer* _pingTimer;