History

Fix scriptable resource thread issue

Karol Suprynowicz committed 10 months ago

Commit bb177551 parent 7b64ea14 files · +21 −4Browse files

Showing the changes to libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp (1 of 4 files). Show all

Unified · Split

libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp+7−1
@@ -78,6 +78,9 @@ private: // storage · 77 unmodified lines
7878
7979 ScriptObjectV8Proxy::ScriptObjectV8Proxy(ScriptEngineV8* engine, QObject* object, bool ownsObject, const ScriptEngine::QObjectWrapOptions& options) :
8080 _engine(engine), _wrapOptions(options), _ownsObject(ownsObject), _object(object) {
81+ if (_ownsObject) {
82+ Q_ASSERT(_engine->thread() == object->thread());
83+ }
8184 Q_ASSERT(_engine != nullptr);
8285 investigate();
8386 }
@@ -241,7 +244,10 @@ ScriptObjectV8Proxy::~ScriptObjectV8Proxy() { · 157 unmodified lines
241244 v8::HandleScope handleScope(isolate);
242245 _v8Object.Reset();
243246 QObject* qobject = _object;
244− if(qobject) delete qobject;
247+ if(qobject) {
248+ Q_ASSERT(qobject->thread() == QThread::currentThread());
249+ delete qobject;
250+ }
245251 } else {
246252 v8::HandleScope handleScope(isolate);
247253 if (_object)