Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 18 files). Show all
Unified · Split
| @@ -67,6 +67,8 @@ · 66 unmodified lines | |||
| 67 | #include "MIDIEvent.h" | 67 | #include "MIDIEvent.h" |
| 68 | 68 | ||
| 69 | static const QString SCRIPT_EXCEPTION_FORMAT = "[UncaughtException] %1 in %2:%3"; | 69 | 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; | ||
| 70 | 72 | ||
| 71 | Q_DECLARE_METATYPE(QScriptEngine::FunctionSignature) | 73 | Q_DECLARE_METATYPE(QScriptEngine::FunctionSignature) |
| 72 | int functionSignatureMetaID = qRegisterMetaType<QScriptEngine::FunctionSignature>(); | 74 | int functionSignatureMetaID = qRegisterMetaType<QScriptEngine::FunctionSignature>(); |
| @@ -95,7 +97,7 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){ · 22 unmodified lines | |||
| 95 | } | 97 | } |
| 96 | 98 | ||
| 97 | QScriptValue avatarDataToScriptValue(QScriptEngine* engine, AvatarData* const &in) { | 99 | QScriptValue avatarDataToScriptValue(QScriptEngine* engine, AvatarData* const &in) { |
| 98 | return engine->newQObject(in); | 100 | return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); |
| 99 | } | 101 | } |
| 100 | 102 | ||
| 101 | void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) { | 103 | void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) { |
| @@ -106,7 +108,7 @@ Q_DECLARE_METATYPE(controller::InputController*) · 4 unmodified lines | |||
| 106 | //static int inputControllerPointerId = qRegisterMetaType<controller::InputController*>(); | 108 | //static int inputControllerPointerId = qRegisterMetaType<controller::InputController*>(); |
| 107 | 109 | ||
| 108 | QScriptValue inputControllerToScriptValue(QScriptEngine *engine, controller::InputController* const &in) { | 110 | QScriptValue inputControllerToScriptValue(QScriptEngine *engine, controller::InputController* const &in) { |
| 109 | return engine->newQObject(in); | 111 | return engine->newQObject(in, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); |
| 110 | } | 112 | } |
| 111 | 113 | ||
| 112 | void inputControllerFromScriptValue(const QScriptValue &object, controller::InputController* &out) { | 114 | void inputControllerFromScriptValue(const QScriptValue &object, controller::InputController* &out) { |
| @@ -460,7 +462,8 @@ static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const · 347 unmodified lines | |||
| 460 | 462 | ||
| 461 | auto object = engine->newQObject( | 463 | auto object = engine->newQObject( |
| 462 | const_cast<ScriptableResourceRawPtr>(resource), | 464 | const_cast<ScriptableResourceRawPtr>(resource), |
| 463 | QScriptEngine::ScriptOwnership); | 465 | QScriptEngine::ScriptOwnership, |
| 466 | DEFAULT_QOBJECT_WRAP_OPTIONS); | ||
| 464 | return object; | 467 | return object; |
| 465 | } | 468 | } |
| 466 | 469 | ||
| @@ -479,7 +482,8 @@ static QScriptValue createScriptableResourcePrototype(QScriptEngine* engine) { · 12 unmodified lines | |||
| 479 | state->setProperty(metaEnum.key(i), metaEnum.value(i)); | 482 | state->setProperty(metaEnum.key(i), metaEnum.value(i)); |
| 480 | } | 483 | } |
| 481 | 484 | ||
| 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); | ||
| 483 | prototype.setProperty("State", prototypeState); | 487 | prototype.setProperty("State", prototypeState); |
| 484 | 488 | ||
| 485 | return prototype; | 489 | return prototype; |
| @@ -614,7 +618,7 @@ void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { · 128 unmodified lines | |||
| 614 | 618 | ||
| 615 | if (!globalObject().property(name).isValid()) { | 619 | if (!globalObject().property(name).isValid()) { |
| 616 | if (object) { | 620 | if (object) { |
| 617 | QScriptValue value = newQObject(object); | 621 | QScriptValue value = newQObject(object, QScriptEngine::QtOwnership, DEFAULT_QOBJECT_WRAP_OPTIONS); |
| 618 | globalObject().setProperty(name, value); | 622 | globalObject().setProperty(name, value); |
| 619 | } else { | 623 | } else { |
| 620 | globalObject().setProperty(name, QScriptValue()); | 624 | globalObject().setProperty(name, QScriptValue()); |