aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/evaluatorscriptclass.cpp
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2018-03-29 08:25:29 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2018-03-29 06:52:13 +0000
commit68caaef357cf0aa2e7d4be82f3beceec825fc8f9 (patch)
treeb08999d040d966febbb32290530a97dbddcd0c7d /src/lib/corelib/language/evaluatorscriptclass.cpp
parent0b141d7ecb103d53cc3ea93db505400fe29b46e5 (diff)
SVConverter: Do not store a ValuePtr reference
Storing the reference is wrong if the ValuePtr passed in the constructor is a temporary object. This is a pointer to an object that must be alive during the whole script value conversion, which is why we can just store a raw pointer. This fixes ASAN warning stack-use-after-scope. Change-Id: I8be9f226226fea32a13f8ed12cbe95ee43c8cd38 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/lib/corelib/language/evaluatorscriptclass.cpp')
-rw-r--r--src/lib/corelib/language/evaluatorscriptclass.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp
index 5a0eec865..620316146 100644
--- a/src/lib/corelib/language/evaluatorscriptclass.cpp
+++ b/src/lib/corelib/language/evaluatorscriptclass.cpp
@@ -72,7 +72,7 @@ class SVConverter : ValueHandler
ScriptEngine * const engine;
QScriptContext * const scriptContext;
const QScriptValue * const object;
- const ValuePtr &valuePtr;
+ Value * const valuePtr;
const Item * const itemOfProperty;
const QScriptString * const propertyName;
const EvaluationData * const data;
@@ -88,7 +88,7 @@ public:
, engine(static_cast<ScriptEngine *>(esc->engine()))
, scriptContext(esc->engine()->currentContext())
, object(obj)
- , valuePtr(v)
+ , valuePtr(v.get())
, itemOfProperty(_itemOfProperty)
, propertyName(propertyName)
, data(data)