diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-01-08 12:00:00 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-04-12 13:58:58 +0000 |
commit | 30850d1ebc28bfe68b329229b537a7d6a7791b29 (patch) | |
tree | 1c94b8a81bd1755adf42c077c8912acb25f121e1 /src/qml/memory/qv4mm.cpp | |
parent | b6bb3fe4238c93d865e255c4681f07b9d4175529 (diff) |
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 <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/memory/qv4mm.cpp')
-rw-r--r-- | src/qml/memory/qv4mm.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp index 4e83abebdf..6e38081c9d 100644 --- a/src/qml/memory/qv4mm.cpp +++ b/src/qml/memory/qv4mm.cpp @@ -335,7 +335,7 @@ bool Chunk::sweep(ExecutionEngine *engine) HeapItem *itemToFree = o + index; Heap::Base *b = *itemToFree; - const VTable *v = b->vtable(); + const VTable *v = b->internalClass->vtable; // if (Q_UNLIKELY(classCountPtr)) // classCountPtr(v->className); if (v->destroy) { @@ -389,8 +389,8 @@ void Chunk::freeAll(ExecutionEngine *engine) HeapItem *itemToFree = o + index; Heap::Base *b = *itemToFree; - if (b->vtable()->destroy) { - b->vtable()->destroy(b); + if (b->internalClass->vtable->destroy) { + b->internalClass->vtable->destroy(b); b->_checkIsDestroyed(); } #ifdef V4_USE_HEAPTRACK @@ -691,7 +691,7 @@ static void freeHugeChunk(ChunkAllocator *chunkAllocator, const HugeItemAllocato { HeapItem *itemToFree = c.chunk->first(); Heap::Base *b = *itemToFree; - const VTable *v = b->vtable(); + const VTable *v = b->internalClass->vtable; if (Q_UNLIKELY(classCountPtr)) classCountPtr(v->className); @@ -911,7 +911,7 @@ void MarkStack::drain() Heap::Base *h = pop(); ++markStackSize; Q_ASSERT(h); // at this point we should only have Heap::Base objects in this area on the stack. If not, weird things might happen. - h->markChildren(this); + h->internalClass->vtable->markObjects(h, this); } } |