aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4identifiertable_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-04-06 12:49:09 +0200
committerLars Knoll <lars.knoll@qt.io>2018-05-02 14:18:02 +0000
commit238b1cb1cb8915995b6dfe4e404f1771c62b3169 (patch)
treeb752ada237d71b5d3cd6fea5f7424b7c92adaa2f /src/qml/jsruntime/qv4identifiertable_p.h
parent5cd9d88c2683c5d226ab1dc0384868408c036fe9 (diff)
Turn Identifier into a simple integer
Add a reverse mapping table to the IdentifierHash to avoid having to store a hash value inside the identifier. This makes it possible to then use the identifiers value based and not new them on the heap anymore. Change-Id: If1f177588ea104565c6e3add49c70534a6c7dcb8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4identifiertable_p.h')
-rw-r--r--src/qml/jsruntime/qv4identifiertable_p.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4identifiertable_p.h b/src/qml/jsruntime/qv4identifiertable_p.h
index 2210a866fb..0c8de01f71 100644
--- a/src/qml/jsruntime/qv4identifiertable_p.h
+++ b/src/qml/jsruntime/qv4identifiertable_p.h
@@ -66,7 +66,8 @@ struct IdentifierTable
int alloc;
int size;
int numBits;
- Heap::String **entries;
+ Heap::String **entriesByHash;
+ Heap::String **entriesById;
void addEntry(Heap::String *str);
@@ -95,7 +96,7 @@ public:
void mark(MarkStack *markStack) {
for (int i = 0; i < alloc; ++i) {
- Heap::String *entry = entries[i];
+ Heap::String *entry = entriesByHash[i];
if (!entry || entry->isMarked())
continue;
entry->setMarkBit();