Showing the changes to libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp (1 of 6 files). Show all
Unified · Split
| @@ -203,6 +203,11 @@ QObject* ScriptObjectV8Proxy::unwrap(const V8ScriptValue& val) { · 202 unmodified lines | |||
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | ScriptObjectV8Proxy::~ScriptObjectV8Proxy() { | 205 | ScriptObjectV8Proxy::~ScriptObjectV8Proxy() { |
| 206 | auto isolate = _engine->getIsolate(); | ||
| 207 | v8::Locker locker(isolate); | ||
| 208 | v8::Isolate::Scope isolateScope(isolate); | ||
| 209 | v8::HandleScope handleScope(isolate); | ||
| 210 | _v8Object.Reset(); | ||
| 206 | if(_object) qDebug(scriptengine) << "Deleting object proxy: " << name(); | 211 | if(_object) qDebug(scriptengine) << "Deleting object proxy: " << name(); |
| 207 | if (_ownsObject) { | 212 | if (_ownsObject) { |
| 208 | QObject* qobject = _object; | 213 | QObject* qobject = _object; |
| @@ -664,6 +669,15 @@ ScriptVariantV8Proxy::ScriptVariantV8Proxy(ScriptEngineV8* engine, const QVarian · 455 unmodified lines | |||
| 664 | _name = QString::fromLatin1(variant.typeName()); | 669 | _name = QString::fromLatin1(variant.typeName()); |
| 665 | } | 670 | } |
| 666 | 671 | ||
| 672 | ScriptVariantV8Proxy::~ScriptVariantV8Proxy() { | ||
| 673 | auto isolate = _engine->getIsolate(); | ||
| 674 | v8::Locker locker(isolate); | ||
| 675 | v8::Isolate::Scope isolateScope(isolate); | ||
| 676 | v8::HandleScope handleScope(isolate); | ||
| 677 | _v8ObjectTemplate.Reset(); | ||
| 678 | _v8Object.Reset(); | ||
| 679 | } | ||
| 680 | |||
| 667 | V8ScriptValue ScriptVariantV8Proxy::newVariant(ScriptEngineV8* engine, const QVariant& variant, V8ScriptValue proto) { | 681 | V8ScriptValue ScriptVariantV8Proxy::newVariant(ScriptEngineV8* engine, const QVariant& variant, V8ScriptValue proto) { |
| 668 | auto isolate = engine->getIsolate(); | 682 | auto isolate = engine->getIsolate(); |
| 669 | v8::Locker locker(isolate); | 683 | v8::Locker locker(isolate); |
| @@ -1147,6 +1161,14 @@ void ScriptMethodV8Proxy::call(const v8::FunctionCallbackInfo<v8::Value>& argume · 477 unmodified lines | |||
| 1147 | return QVariant(); | 1161 | return QVariant(); |
| 1148 | }*/ | 1162 | }*/ |
| 1149 | 1163 | ||
| 1164 | ScriptSignalV8Proxy::~ScriptSignalV8Proxy() { | ||
| 1165 | auto isolate = _engine->getIsolate(); | ||
| 1166 | v8::Locker locker(isolate); | ||
| 1167 | v8::Isolate::Scope isolateScope(isolate); | ||
| 1168 | v8::HandleScope handleScope(isolate); | ||
| 1169 | _v8Context.Reset(); | ||
| 1170 | } | ||
| 1171 | |||
| 1150 | QString ScriptSignalV8Proxy::fullName() const { | 1172 | QString ScriptSignalV8Proxy::fullName() const { |
| 1151 | Q_ASSERT(_object); | 1173 | Q_ASSERT(_object); |
| 1152 | if (!_object) return ""; | 1174 | if (!_object) return ""; |