diff options
author | Lars Knoll <[email protected]> | 2017-02-08 16:21:02 +0100 |
---|---|---|
committer | Lars Knoll <[email protected]> | 2017-03-09 08:59:20 +0000 |
commit | 2a554434a571dcefd26cf10ef8c5ae8b3b7d66db (patch) | |
tree | 5532f0a0206fbbde0a3099ff1e0ee58188a97275 /src/qml/jsruntime/qv4context.cpp | |
parent | 05de4e044f92dd278a00e410be8f070bc4d66e6f (diff) |
Implement a real write barrier
Implement a Steel write barrier for our objects. The barrier is
interesting as it can also be used for incremental GC runs by
simply turning the barrier on and leaving old objects marked as
black.
Change-Id: I0b273974d94a990dee3cd9298089b8b202c75bf2
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4context.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4context.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index a9b0d67630..7a0df5dbf3 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -176,6 +176,17 @@ void Heap::CatchContext::init(ExecutionContext *outerContext, String *exceptionV this->exceptionValue.set(engine, exceptionValue); } +void Heap::WithContext::init(ExecutionContext *outerContext, Object *with) +{ + Heap::ExecutionContext::init(outerContext->engine, Heap::ExecutionContext::Type_WithContext); + outer.set(engine, outerContext); + callData = outer->callData; + lookups = outer->lookups; + constantTable = outer->constantTable; + compilationUnit = outer->compilationUnit; + + withObject.set(engine, with); +} Identifier * const *SimpleCallContext::formals() const { |