diff options
author | Lars Knoll <[email protected]> | 2014-12-15 08:46:38 +0100 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2014-12-20 12:00:39 +0100 |
commit | 74c658bb631fd5bab433b9867ff2e568a56ec082 (patch) | |
tree | cf82000446c51064a2f8643fd5ffd74b0bcca668 /src/qml/jsruntime/qv4functionobject.cpp | |
parent | 965fac4418bec7e7b3c84efd76f7803116fb9eac (diff) |
Make Property uses GC safe
Change-Id: I5aa41a07a2d25e5c8a2d64bfa58a55fcd7aaf77e
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4functionobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4functionobject.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qml/jsruntime/qv4functionobject.cpp b/src/qml/jsruntime/qv4functionobject.cpp index 1d0e4a4f60..6fabedec95 100644 --- a/src/qml/jsruntime/qv4functionobject.cpp +++ b/src/qml/jsruntime/qv4functionobject.cpp @@ -464,7 +464,9 @@ Heap::SimpleScriptFunction::SimpleScriptFunction(QV4::ExecutionContext *scope, F f->defineReadonlyProperty(scope->d()->engine->id_length, Primitive::fromInt32(f->formalParameterCount())); if (scope->d()->strictMode) { - Property pd(s.engine->thrower, s.engine->thrower); + ScopedProperty pd(s); + pd->value = s.engine->thrower; + pd->set = s.engine->thrower; f->insertMember(scope->d()->engine->id_caller, pd, Attr_Accessor|Attr_NotConfigurable|Attr_NotEnumerable); f->insertMember(scope->d()->engine->id_arguments, pd, Attr_Accessor|Attr_NotConfigurable|Attr_NotEnumerable); } @@ -632,9 +634,9 @@ Heap::BoundFunction::BoundFunction(QV4::ExecutionContext *scope, QV4::FunctionOb len = 0; f->defineReadonlyProperty(s.engine->id_length, Primitive::fromInt32(len)); - ExecutionEngine *v4 = s.engine; - - Property pd(v4->thrower, v4->thrower); + ScopedProperty pd(s); + pd->value = s.engine->thrower; + pd->set = s.engine->thrower; f->insertMember(s.engine->id_arguments, pd, Attr_Accessor|Attr_NotConfigurable|Attr_NotEnumerable); f->insertMember(s.engine->id_caller, pd, Attr_Accessor|Attr_NotConfigurable|Attr_NotEnumerable); } |