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 | 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 | 211 | if(_object) qDebug(scriptengine) << "Deleting object proxy: " << name(); |
| 207 | 212 | if (_ownsObject) { |
| 208 | 213 | QObject* qobject = _object; |
| @@ -664,6 +669,15 @@ ScriptVariantV8Proxy::ScriptVariantV8Proxy(ScriptEngineV8* engine, const QVarian · 455 unmodified lines | ||
| 664 | 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 | 681 | V8ScriptValue ScriptVariantV8Proxy::newVariant(ScriptEngineV8* engine, const QVariant& variant, V8ScriptValue proto) { |
| 668 | 682 | auto isolate = engine->getIsolate(); |
| 669 | 683 | v8::Locker locker(isolate); |
| @@ -1147,6 +1161,14 @@ void ScriptMethodV8Proxy::call(const v8::FunctionCallbackInfo<v8::Value>& argume · 477 unmodified lines | ||
| 1147 | 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 | 1172 | QString ScriptSignalV8Proxy::fullName() const { |
| 1151 | 1173 | Q_ASSERT(_object); |
| 1152 | 1174 | if (!_object) return ""; |