diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-02-07 18:15:28 +0100 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-02-08 17:42:40 +0100 |
commit | d4206b21c56e8307d1439a8f10a8cd68bb6c714e (patch) | |
tree | d49a25198c233a0a6141b7efe2102902163b4377 | |
parent | 4672d304a4158fc7f467a471165d4fef7bb336ca (diff) | |
download | qtscript-d4206b21c56e8307d1439a8f10a8cd68bb6c714e.tar.gz |
Fix object destruction order
The string should be destroyed before its data.
Change-Id: I99034c58dd46c4589941aca066b3fae65a406fcd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/script/bridge/qscriptclassobject.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/script/bridge/qscriptclassobject.cpp b/src/script/bridge/qscriptclassobject.cpp index 88a3fc3..65a4196 100644 --- a/src/script/bridge/qscriptclassobject.cpp +++ b/src/script/bridge/qscriptclassobject.cpp @@ -86,8 +86,8 @@ bool ClassObjectDelegate::getOwnPropertySlot(QScriptObject* object, return true; QScriptValue scriptObject = engine->scriptValueFromJSCValue(object); - QScriptString scriptName; QScriptStringPrivate scriptName_d(engine, propertyName, QScriptStringPrivate::StackAllocated); + QScriptString scriptName; QScriptStringPrivate::init(scriptName, &scriptName_d); uint id = 0; QScriptClass::QueryFlags flags = m_scriptClass->queryProperty( @@ -160,8 +160,8 @@ void ClassObjectDelegate::put(QScriptObject* object, JSC::ExecState *exec, QScriptEnginePrivate *engine = scriptEngineFromExec(exec); QScript::SaveFrameHelper saveFrame(engine, exec); QScriptValue scriptObject = engine->scriptValueFromJSCValue(object); - QScriptString scriptName; QScriptStringPrivate scriptName_d(engine, propertyName, QScriptStringPrivate::StackAllocated); + QScriptString scriptName; QScriptStringPrivate::init(scriptName, &scriptName_d); uint id = 0; QScriptClass::QueryFlags flags = m_scriptClass->queryProperty( @@ -180,8 +180,8 @@ bool ClassObjectDelegate::deleteProperty(QScriptObject* object, JSC::ExecState * QScriptEnginePrivate *engine = scriptEngineFromExec(exec); QScript::SaveFrameHelper saveFrame(engine, exec); QScriptValue scriptObject = engine->scriptValueFromJSCValue(object); - QScriptString scriptName; QScriptStringPrivate scriptName_d(engine, propertyName, QScriptStringPrivate::StackAllocated); + QScriptString scriptName; QScriptStringPrivate::init(scriptName, &scriptName_d); uint id = 0; QScriptClass::QueryFlags flags = m_scriptClass->queryProperty( |