Showing the changes to libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp (1 of 4 files). Show all
Unified · Split
| @@ -78,6 +78,9 @@ private: // storage · 77 unmodified lines | ||
| 78 | 78 | |
| 79 | 79 | ScriptObjectV8Proxy::ScriptObjectV8Proxy(ScriptEngineV8* engine, QObject* object, bool ownsObject, const ScriptEngine::QObjectWrapOptions& options) : |
| 80 | 80 | _engine(engine), _wrapOptions(options), _ownsObject(ownsObject), _object(object) { |
| 81 | + if (_ownsObject) { | |
| 82 | + Q_ASSERT(_engine->thread() == object->thread()); | |
| 83 | + } | |
| 81 | 84 | Q_ASSERT(_engine != nullptr); |
| 82 | 85 | investigate(); |
| 83 | 86 | } |
| @@ -241,7 +244,10 @@ ScriptObjectV8Proxy::~ScriptObjectV8Proxy() { · 157 unmodified lines | ||
| 241 | 244 | v8::HandleScope handleScope(isolate); |
| 242 | 245 | _v8Object.Reset(); |
| 243 | 246 | QObject* qobject = _object; |
| 244 | − if(qobject) delete qobject; | |
| 247 | + if(qobject) { | |
| 248 | + Q_ASSERT(qobject->thread() == QThread::currentThread()); | |
| 249 | + delete qobject; | |
| 250 | + } | |
| 245 | 251 | } else { |
| 246 | 252 | v8::HandleScope handleScope(isolate); |
| 247 | 253 | if (_object) |