From 30850d1ebc28bfe68b329229b537a7d6a7791b29 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 8 Jan 2018 12:00:00 +0100 Subject: Remove dependency from qv4heap_p.h onto qv4internalclass_p.h This is required to be able to turn the internal class into something that lives on the GC heap. Change-Id: Ie4318588d420743b1e1ab1cd596a1c9d153eb793 Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4object_p.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (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 1731ae3c76..4743900196 100644 --- a/src/qml/jsruntime/qv4object_p.h +++ b/src/qml/jsruntime/qv4object_p.h @@ -74,6 +74,10 @@ DECLARE_EXPORTED_HEAP_OBJECT(Object, Base) { static void markObjects(Heap::Base *base, MarkStack *stack); void init() { Base::init(); } + const VTable *vtable() const { + return internalClass->vtable; + } + const Value *inlinePropertyDataWithOffset(uint indexWithOffset) const { Q_ASSERT(indexWithOffset >= vtable()->inlinePropertyOffset && indexWithOffset < vtable()->inlinePropertyOffset + vtable()->nInlineProperties); return reinterpret_cast(this) + indexWithOffset; @@ -551,7 +555,7 @@ inline void Object::arraySet(uint index, const Value &value) template<> inline const ArrayObject *Value::as() const { - return isManaged() && m()->vtable()->type == Managed::Type_ArrayObject ? static_cast(this) : nullptr; + return isManaged() && m()->internalClass->vtable->type == Managed::Type_ArrayObject ? static_cast(this) : nullptr; } #ifndef V4_BOOTSTRAP -- cgit v1.2.3