From 8b3cbc4403e3eac286613691c11aa1ded588da59 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2017 22:22:00 +0100 Subject: Refactor how we define Heap objects Declare the type of Heap object in the Member() macro, instead of deducing it from templates. This allows us to encode the offset of the member in the second template argument to Pointer<> in a second step. Change-Id: I2cfb73785749d3fb991689b4e0554a72b3e5e13f Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4object_p.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/qml/jsruntime/qv4object_p.h') diff --git a/src/qml/jsruntime/qv4object_p.h b/src/qml/jsruntime/qv4object_p.h index 2affcd1af9..5b43710c03 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -68,10 +68,10 @@ struct BuiltinFunction; namespace Heap { #define ObjectMembers(class, Member) \ - Member(class, InternalClass *, internalClass) \ - Member(class, Pointer, prototype) \ - Member(class, Pointer, memberData) \ - Member(class, Pointer, arrayData) + Member(class, NoMark, InternalClass *, internalClass) \ + Member(class, Pointer, Object *, prototype) \ + Member(class, Pointer, MemberData *, memberData) \ + Member(class, Pointer, ArrayData *, arrayData) DECLARE_HEAP_OBJECT(Object, Base) { DECLARE_MARK_TABLE(Object); @@ -299,7 +299,7 @@ public: void push_back(const Value &v); ArrayData::Type arrayType() const { - return arrayData() ? d()->arrayData->type : Heap::ArrayData::Simple; + return arrayData() ? static_cast(d()->arrayData->type) : Heap::ArrayData::Simple; } // ### remove me void setArrayType(ArrayData::Type t) { -- cgit v1.2.3