diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-01-10 14:16:22 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-04-12 13:59:17 +0000 |
commit | 6c8c604f11e7a6d5880e4f951255d496fe905797 (patch) | |
tree | 117050abfb2164d45575ee1bfd35de46ddf224b2 /src/qml/jsruntime/qv4lookup.cpp | |
parent | 6b110a30df178b2aaace579841e5bd74f2e9ee99 (diff) |
Reorganize Lookup data structure to make marking faster
Do this by always using odd numbers for protoId's, and
putting those into the same place as the InternalClass
pointers. That makes it possible to quickly check whether
the lookup contains a pointer to a valid heap object.
Change-Id: I330017b26c090b4dcbbcce1a127dca7ba7e148d1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4lookup.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4lookup.cpp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/qml/jsruntime/qv4lookup.cpp b/src/qml/jsruntime/qv4lookup.cpp index 5730ea7bc0..fdf3d7685d 100644 --- a/src/qml/jsruntime/qv4lookup.cpp +++ b/src/qml/jsruntime/qv4lookup.cpp @@ -598,53 +598,4 @@ bool Lookup::arrayLengthSetter(Lookup *, ExecutionEngine *engine, Value &object, return true; } -void Lookup::markObjects(MarkStack *stack) -{ - if (getter == getterGeneric || - getter == getterTwoClasses || - getter == getterFallback) { - ; - } else if (getter == getter0MemberData || - getter == getter0Inline || - getter == getterAccessor) { - objectLookup.ic->mark(stack); - } else if (getter == getterProto) { - ; - } else if (getter == getter0Inlinegetter0Inline || - getter == getter0Inlinegetter0MemberData || - getter == getter0MemberDatagetter0MemberData) { - objectLookupTwoClasses.ic->mark(stack); - objectLookupTwoClasses.ic2->mark(stack); - } else if (getter == getterProtoTwoClasses || - getter == getterProtoAccessor || - getter == getterProtoAccessorTwoClasses) { - - } else if (getter == primitiveGetterProto || - getter == primitiveGetterAccessor) { - primitiveLookup.proto->mark(stack); - } else if (getter == stringLengthGetter) { - ; - - } else if (globalGetter == globalGetterGeneric || - globalGetter == globalGetterProto || - globalGetter == globalGetterProtoAccessor) { - ; - - } else if (setter == setterGeneric || - setter == setterTwoClasses || - setter == setterFallback) { - ; - } else if (setter == setter0 || - setter == setter0Inline) { - objectLookup.ic->mark(stack); - } else if (setter == setter0setter0) { - objectLookupTwoClasses.ic->mark(stack); - objectLookupTwoClasses.ic2->mark(stack); - } else if (setter == setterInsert) { - insertionLookup.newClass->mark(stack); - } else if (setter == arrayLengthSetter) { - ; - } -} - QT_END_NAMESPACE |