aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4memberdata_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2014-11-01 23:04:20 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-11-08 16:39:07 +0100
commitec8f1f68d623ae68cc7d79e19067884532e3db6f (patch)
treeccf08fdf46e677931ba839228c444f24bcbb202e /src/qml/jsruntime/qv4memberdata_p.h
parent9d1cd3098a066c7b6689d4776bfd3a25621a26fc (diff)
Begin moving the data out of Managed objects
We need to move the Data objects out of the Managed objects, to avoid lots of trouble because inner classes can't be forward declared in C++. Instead move them all into a Heap namespace. Change-Id: I736af60702b68a1759f4643aa16d64108693dea2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4memberdata_p.h')
-rw-r--r--src/qml/jsruntime/qv4memberdata_p.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h
index 0177601b9f..c3c95079dd 100644
--- a/src/qml/jsruntime/qv4memberdata_p.h
+++ b/src/qml/jsruntime/qv4memberdata_p.h
@@ -40,16 +40,21 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
+namespace Heap {
+
+struct MemberData : Base {
+ union {
+ uint size;
+ double _dummy;
+ };
+ Value data[1];
+};
+
+}
+
struct MemberData : Managed
{
- struct Data : Managed::Data {
- union {
- uint size;
- double _dummy;
- };
- Value data[1];
- };
- V4_MANAGED(Managed)
+ V4_MANAGED2(MemberData, Managed)
MemberData(QV4::InternalClass *ic) : Managed(ic) {}
Value &operator[] (uint idx) { return d()->data[idx]; }
@@ -57,9 +62,9 @@ struct MemberData : Managed
Value *data() { return d()->data; }
inline uint size() const { return d()->size; }
- static MemberData::Data *reallocate(QV4::ExecutionEngine *e, MemberData::Data *old, uint idx);
+ static Heap::MemberData *reallocate(QV4::ExecutionEngine *e, Heap::MemberData *old, uint idx);
- static void markObjects(HeapObject *that, ExecutionEngine *e);
+ static void markObjects(Heap::Base *that, ExecutionEngine *e);
};
}