History

Merge branch 'master' of github.com:highfidelity/hifi into update-tablet-ui-again

Seth Alves committed 9 years ago

Commit bacc7962 parents 2886d7f 8b45afe18 files · +104 −45Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 18 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+9−5
@@ -67,6 +67,8 @@ · 66 unmodified lines
6767 #include "MIDIEvent.h"
6868
6969 static const QString SCRIPT_EXCEPTION_FORMAT = "[UncaughtException] %1 in %2:%3";
70+static const QScriptEngine::QObjectWrapOptions DEFAULT_QOBJECT_WRAP_OPTIONS =
71+ QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeChildObjects;
7072
7173 Q_DECLARE_METATYPE(QScriptEngine::FunctionSignature)
7274 int functionSignatureMetaID = qRegisterMetaType<QScriptEngine::FunctionSignature>();
@@ -95,7 +97,7 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){ · 22 unmodified lines
9597 }
9698
9799 QScriptValue avatarDataToScriptValue(QScriptEngine* engine, AvatarData* const &in) {
98− return engine->newQObject(in);
100+ return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS);
99101 }
100102
101103 void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) {
@@ -106,7 +108,7 @@ Q_DECLARE_METATYPE(controller::InputController*) · 4 unmodified lines
106108 //static int inputControllerPointerId = qRegisterMetaType<controller::InputController*>();
107109
108110 QScriptValue inputControllerToScriptValue(QScriptEngine *engine, controller::InputController* const &in) {
109− return engine->newQObject(in);
111+ return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS);
110112 }
111113
112114 void inputControllerFromScriptValue(const QScriptValue &object, controller::InputController* &out) {
@@ -460,7 +462,8 @@ static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const · 347 unmodified lines
460462
461463 auto object = engine->newQObject(
462464 const_cast<ScriptableResourceRawPtr>(resource),
463− QScriptEngine::ScriptOwnership);
465+ QScriptEngine::ScriptOwnership,
466+ DEFAULT_QOBJECT_WRAP_OPTIONS);
464467 return object;
465468 }
466469
@@ -479,7 +482,8 @@ static QScriptValue createScriptableResourcePrototype(QScriptEngine* engine) { · 12 unmodified lines
479482 state->setProperty(metaEnum.key(i), metaEnum.value(i));
480483 }
481484
482− auto prototypeState = engine->newQObject(state, QScriptEngine::QtOwnership, QScriptEngine::ExcludeSlots | QScriptEngine::ExcludeSuperClassMethods);
485+ auto prototypeState = engine->newQObject(state, QScriptEngine::QtOwnership,
486+ QScriptEngine::ExcludeDeleteLater | QScriptEngine::ExcludeSlots | QScriptEngine::ExcludeSuperClassMethods);
483487 prototype.setProperty("State", prototypeState);
484488
485489 return prototype;
@@ -614,7 +618,7 @@ void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { · 128 unmodified lines
614618
615619 if (!globalObject().property(name).isValid()) {
616620 if (object) {
617− QScriptValue value = newQObject(object);
621+ QScriptValue value = newQObject(object, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS);
618622 globalObject().setProperty(name, value);
619623 } else {
620624 globalObject().setProperty(name, QScriptValue());