aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4internalclass_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-11-24 15:38:41 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-12-11 15:52:13 +0100
commit8afc1f7fe24c625cdb84406cc7665f1dcabf88c4 (patch)
tree04c5d73167544182e509ce7e40bd18c29909d0a7 /src/qml/jsruntime/qv4internalclass_p.h
parent4322c8d7686c7cbbdf348146d32d705007b21d56 (diff)
Move prototype back from the vtable into Object
This is the only way we can support a GC that moves objects around in memory. Change-Id: I1d168fae4aa9f575b730e469e762bc5b5549b886 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass_p.h')
-rw-r--r--src/qml/jsruntime/qv4internalclass_p.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4internalclass_p.h b/src/qml/jsruntime/qv4internalclass_p.h
index 14dbbe713f..4367f6576d 100644
--- a/src/qml/jsruntime/qv4internalclass_p.h
+++ b/src/qml/jsruntime/qv4internalclass_p.h
@@ -191,14 +191,12 @@ struct InternalClassTransition
{
union {
Identifier *id;
- Object *prototype;
const ManagedVTable *vtable;
};
int flags;
enum {
// range 0-0xff is reserved for attribute changes
- ProtoChange = 0x100,
- VTableChange = 0x200
+ VTableChange = 0x100
};
bool operator==(const InternalClassTransition &other) const
@@ -208,7 +206,6 @@ uint qHash(const QV4::InternalClassTransition &t, uint = 0);
struct InternalClass : public QQmlJS::Managed {
ExecutionEngine *engine;
- Object *prototype;
const ManagedVTable *vtable;
PropertyHash propertyTable; // id to valueIndex
@@ -223,8 +220,7 @@ struct InternalClass : public QQmlJS::Managed {
uint size;
- static InternalClass *create(ExecutionEngine *engine, const ManagedVTable *vtable, Object *proto);
- InternalClass *changePrototype(Object *proto);
+ static InternalClass *create(ExecutionEngine *engine, const ManagedVTable *vtable);
InternalClass *changeVTable(const ManagedVTable *vt);
static void addMember(Object *object, String *string, PropertyAttributes data, uint *index);
InternalClass *addMember(String *string, PropertyAttributes data, uint *index = 0);