From 4df9302af9a72258c87bc0cc3152f2698d1dfabc Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 11 Nov 2016 16:23:23 -0800 Subject: [PATCH 1/2] Disable access to deleteLater in ScriptEngine --- libraries/script-engine/src/ScriptEngine.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 776c7cfec6..489787d35b 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -66,6 +66,7 @@ #include "MIDIEvent.h" static const QString SCRIPT_EXCEPTION_FORMAT = "[UncaughtException] %1 in %2:%3"; +static const QScriptEngine::QObjectWrapOptions DEFAULT_QOBJECT_WRAP_OPTIONS = 0; Q_DECLARE_METATYPE(QScriptEngine::FunctionSignature) int functionSignatureMetaID = qRegisterMetaType(); @@ -90,7 +91,7 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){ } QScriptValue avatarDataToScriptValue(QScriptEngine* engine, AvatarData* const &in) { - return engine->newQObject(in); + return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); } void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) { @@ -101,7 +102,7 @@ Q_DECLARE_METATYPE(controller::InputController*) //static int inputControllerPointerId = qRegisterMetaType(); QScriptValue inputControllerToScriptValue(QScriptEngine *engine, controller::InputController* const &in) { - return engine->newQObject(in); + return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); } void inputControllerFromScriptValue(const QScriptValue &object, controller::InputController* &out) { @@ -440,7 +441,8 @@ static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const auto object = engine->newQObject( const_cast(resource), - QScriptEngine::ScriptOwnership); + QScriptEngine::ScriptOwnership, + DEFAULT_QOBJECT_WRAP_OPTIONS); return object; } @@ -459,7 +461,8 @@ static QScriptValue createScriptableResourcePrototype(QScriptEngine* engine) { state->setProperty(metaEnum.key(i), metaEnum.value(i)); } - auto prototypeState = engine->newQObject(state, QScriptEngine::QtOwnership, QScriptEngine::ExcludeSlots | QScriptEngine::ExcludeSuperClassMethods); + auto prototypeState = engine->newQObject(state, QScriptEngine::QtOwnership, + QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeSlots | QScriptEngine::ExcludeSuperClassMethods); prototype.setProperty("State", prototypeState); return prototype; @@ -592,7 +595,7 @@ void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { if (!globalObject().property(name).isValid()) { if (object) { - QScriptValue value = newQObject(object); + QScriptValue value = newQObject(object, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); globalObject().setProperty(name, value); } else { globalObject().setProperty(name, QScriptValue()); From 51586ae0a33cacc9496c69977f0ac3f859108634 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Fri, 11 Nov 2016 16:25:44 -0800 Subject: [PATCH 2/2] Fix log typo in SpatiallyNestable --- libraries/script-engine/src/ScriptEngine.cpp | 3 ++- libraries/shared/src/SpatiallyNestable.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 489787d35b..85c26d15c0 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -66,7 +66,8 @@ #include "MIDIEvent.h" static const QString SCRIPT_EXCEPTION_FORMAT = "[UncaughtException] %1 in %2:%3"; -static const QScriptEngine::QObjectWrapOptions DEFAULT_QOBJECT_WRAP_OPTIONS = 0; +static const QScriptEngine::QObjectWrapOptions DEFAULT_QOBJECT_WRAP_OPTIONS = + QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeChildObjects; Q_DECLARE_METATYPE(QScriptEngine::FunctionSignature) int functionSignatureMetaID = qRegisterMetaType(); diff --git a/libraries/shared/src/SpatiallyNestable.cpp b/libraries/shared/src/SpatiallyNestable.cpp index f75557f73f..2149e72483 100644 --- a/libraries/shared/src/SpatiallyNestable.cpp +++ b/libraries/shared/src/SpatiallyNestable.cpp @@ -488,7 +488,7 @@ glm::vec3 SpatiallyNestable::getVelocity() const { bool success; glm::vec3 result = getVelocity(success); if (!success) { - qDebug() << "Warning -- setVelocity failed" << getID(); + qDebug() << "Warning -- getVelocity failed" << getID(); } return result; }