aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4internalclass_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass_p.h')
-rw-r--r--src/qml/jsruntime/qv4internalclass_p.h8
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;