diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-05-19 15:57:13 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-05-19 18:54:57 +0000 |
commit | a5dad4e78ff78777eafbae723442db4e9da2d6ff (patch) | |
tree | c0171b8a188a53e6b5a4d7c81b6a51488923c02f /src/qml | |
parent | 8bc243f569e3feb1005fbca426bf24f59c38af2e (diff) |
Get rid of the MemoryManager pointer inside String
We can always get the pointer through the internalClass.
Change-Id: If68432845e7c67da70d9e19aef1a90ebe1e6056b
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/jsruntime/qv4function.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4runtime.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4string.cpp | 10 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4string_p.h | 5 | ||||
-rw-r--r-- | src/qml/memory/qv4mm_p.h | 2 |
5 files changed, 11 insertions, 14 deletions
diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp index 994dede26d..31b57b97e9 100644 --- a/src/qml/jsruntime/qv4function.cpp +++ b/src/qml/jsruntime/qv4function.cpp @@ -74,7 +74,7 @@ Function::Function(ExecutionEngine *engine, CompiledData::CompilationUnit *unit, } // duplicate arguments, need some trick to store them MemoryManager *mm = engine->memoryManager; - arg = mm->alloc<String>(mm, arg->d(), engine->newString(QString(0xfffe))); + arg = mm->alloc<String>(arg->d(), engine->newString(QString(0xfffe))); } } nFormals = compiledFunction->nFormals; @@ -109,7 +109,7 @@ void Function::updateInternalClass(ExecutionEngine *engine, const QList<QByteArr break; } // duplicate arguments, need some trick to store them - arg = engine->memoryManager->alloc<String>(engine->memoryManager, arg->d(), engine->newString(QString(0xfffe))); + arg = engine->memoryManager->alloc<String>(arg->d(), engine->newString(QString(0xfffe))); } } nFormals = parameters.size(); diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index a79eab3778..37a2bfdf90 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -554,7 +554,7 @@ QV4::ReturnedValue RuntimeHelpers::addHelper(ExecutionEngine *engine, const Valu if (!sright->d()->length()) return sleft->asReturnedValue(); MemoryManager *mm = engine->memoryManager; - return (mm->alloc<String>(mm, sleft->d(), sright->d()))->asReturnedValue(); + return (mm->alloc<String>(sleft->d(), sright->d()))->asReturnedValue(); } double x = RuntimeHelpers::toNumber(pleft); double y = RuntimeHelpers::toNumber(pright); @@ -586,7 +586,7 @@ QV4::ReturnedValue Runtime::method_addString(ExecutionEngine *engine, const Valu if (!sright->d()->length()) return pleft->asReturnedValue(); MemoryManager *mm = engine->memoryManager; - return (mm->alloc<String>(mm, sleft->d(), sright->d()))->asReturnedValue(); + return (mm->alloc<String>(sleft->d(), sright->d()))->asReturnedValue(); } void Runtime::method_setProperty(ExecutionEngine *engine, const Value &object, int nameIndex, const Value &value) diff --git a/src/qml/jsruntime/qv4string.cpp b/src/qml/jsruntime/qv4string.cpp index 1404ab6d9b..515d61c8e4 100644 --- a/src/qml/jsruntime/qv4string.cpp +++ b/src/qml/jsruntime/qv4string.cpp @@ -75,10 +75,9 @@ bool String::isEqualTo(Managed *t, Managed *o) } -void Heap::String::init(MemoryManager *mm, const QString &t) +void Heap::String::init(const QString &t) { Base::init(); - this->mm = mm; subtype = String::StringType_Unknown; @@ -90,10 +89,9 @@ void Heap::String::init(MemoryManager *mm, const QString &t) len = text->size; } -void Heap::String::init(MemoryManager *mm, String *l, String *r) +void Heap::String::init(String *l, String *r) { Base::init(); - this->mm = mm; subtype = String::StringType_Unknown; @@ -116,7 +114,7 @@ void Heap::String::init(MemoryManager *mm, String *l, String *r) void Heap::String::destroy() { if (!largestSubLength) { - mm->changeUnmanagedHeapSizeUsage(qptrdiff(-text->size) * (int)sizeof(QChar)); + internalClass->engine->memoryManager->changeUnmanagedHeapSizeUsage(qptrdiff(-text->size) * (int)sizeof(QChar)); if (!text->ref.deref()) QStringData::deallocate(text); } @@ -161,7 +159,7 @@ void Heap::String::simplifyString() const text->ref.ref(); identifier = 0; largestSubLength = 0; - mm->changeUnmanagedHeapSizeUsage(qptrdiff(text->size) * (qptrdiff)sizeof(QChar)); + internalClass->engine->memoryManager->changeUnmanagedHeapSizeUsage(qptrdiff(text->size) * (qptrdiff)sizeof(QChar)); } void Heap::String::append(const String *data, QChar *ch) diff --git a/src/qml/jsruntime/qv4string_p.h b/src/qml/jsruntime/qv4string_p.h index 458a9edae6..f5311ae5d4 100644 --- a/src/qml/jsruntime/qv4string_p.h +++ b/src/qml/jsruntime/qv4string_p.h @@ -72,8 +72,8 @@ struct Q_QML_PRIVATE_EXPORT String : Base { }; #ifndef V4_BOOTSTRAP - void init(MemoryManager *mm, const QString &text); - void init(MemoryManager *mm, String *l, String *n); + void init(const QString &text); + void init(String *l, String *n); void destroy(); void simplifyString() const; int length() const { @@ -126,7 +126,6 @@ struct Q_QML_PRIVATE_EXPORT String : Base { mutable uint stringHash; mutable uint largestSubLength; uint len; - MemoryManager *mm; private: static void append(const String *data, QChar *ch); #endif diff --git a/src/qml/memory/qv4mm_p.h b/src/qml/memory/qv4mm_p.h index c5334a0dde..77c5885dfe 100644 --- a/src/qml/memory/qv4mm_p.h +++ b/src/qml/memory/qv4mm_p.h @@ -261,7 +261,7 @@ public: typename ManagedType::Data *o = reinterpret_cast<typename ManagedType::Data *>(allocString(unmanagedSize)); o->internalClass = ManagedType::defaultInternalClass(engine); Q_ASSERT(o->internalClass && o->internalClass->vtable); - o->init(this, arg1); + o->init(arg1); return o; } |