diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-03-29 08:25:29 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-03-29 06:52:13 +0000 |
commit | 68caaef357cf0aa2e7d4be82f3beceec825fc8f9 (patch) | |
tree | b08999d040d966febbb32290530a97dbddcd0c7d /src/lib/corelib/language/evaluatorscriptclass.cpp | |
parent | 0b141d7ecb103d53cc3ea93db505400fe29b46e5 (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.cpp | 4 |
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) |