diff options
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4internalclass_p.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4internalclass_p.h b/src/qml/jsruntime/qv4internalclass_p.h index 4367f6576d..5973ca2c7c 100644 --- a/src/qml/jsruntime/qv4internalclass_p.h +++ b/src/qml/jsruntime/qv4internalclass_p.h @@ -193,6 +193,7 @@ struct InternalClassTransition Identifier *id; const ManagedVTable *vtable; }; + InternalClass *lookup; int flags; enum { // range 0-0xff is reserved for attribute changes @@ -201,8 +202,10 @@ struct InternalClassTransition bool operator==(const InternalClassTransition &other) const { return id == other.id && flags == other.flags; } + + bool operator<(const InternalClassTransition &other) const + { return id < other.id; } }; -uint qHash(const QV4::InternalClassTransition &t, uint = 0); struct InternalClass : public QQmlJS::Managed { ExecutionEngine *engine; @@ -213,7 +216,8 @@ struct InternalClass : public QQmlJS::Managed { SharedInternalClassData<PropertyAttributes> propertyData; typedef InternalClassTransition Transition; - QHash<Transition, InternalClass *> transitions; // id to next class, positive means add, negative delete + std::vector<Transition> transitions; + InternalClassTransition &lookupOrInsertTransition(const InternalClassTransition &t); InternalClass *m_sealed; InternalClass *m_frozen; |