From 028eec71645171f323932f6ba826691214f773a0 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 3 Feb 2014 10:33:31 -0800 Subject: [PATCH] don't allow calls to init, run, evaluate from JS --- interface/src/Application.cpp | 2 +- libraries/script-engine/src/ScriptEngine.cpp | 4 ++-- libraries/script-engine/src/ScriptEngine.h | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index d0d0fc4c40..2ecb58eaf2 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4255,7 +4255,7 @@ void Application::loadScript(const QString& fileNameString) { QThread* workerThread = new QThread(this); // when the worker thread is started, call our engine's run.. - connect(workerThread, SIGNAL(started()), scriptEngine, SLOT(run())); + connect(workerThread, &QThread::started, scriptEngine, &ScriptEngine::run); // when the thread is terminated, add both scriptEngine and thread to the deleteLater queue connect(scriptEngine, SIGNAL(finished(const QString&)), scriptEngine, SLOT(deleteLater())); diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 3b5cedb3ad..477d0be5b4 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -106,6 +106,7 @@ bool ScriptEngine::setScriptContents(const QString& scriptContents) { } void ScriptEngine::init() { + qDebug() << "Init called!"; if (_isInitialized) { return; // only initialize once } @@ -342,5 +343,4 @@ void ScriptEngine::stopTimer(QTimer *timer) { _timerFunctionMap.remove(timer); delete timer; } -} - +} \ No newline at end of file diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index 12909a16eb..98d5860332 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -60,13 +60,14 @@ public: void setAvatarData(AvatarData* avatarData, const QString& objectName); + void init(); + void run(); /// runs continuously until Agent.stop() is called + void evaluate(); /// initializes the engine, and evaluates the script, but then returns control to caller + void timerFired(); public slots: - void init(); - void run(); /// runs continuously until Agent.stop() is called void stop(); - void evaluate(); /// initializes the engine, and evaluates the script, but then returns control to caller QObject* setInterval(const QScriptValue& function, int intervalMS); QObject* setTimeout(const QScriptValue& function, int timeoutMS);