diff options
author | Michael Brasser <michael.brasser@live.com> | 2014-02-27 15:59:39 -0600 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-28 19:01:21 +0100 |
commit | a3688bf41fd42befe7ab83a633dbbd71eda56cd9 (patch) | |
tree | 042d3b4a4a78f6787a6c641e09ff957b62b40aa5 /src/qml/qml/qqmlvme.cpp | |
parent | 0b2d05093c6fc030d40be8c873ad1e0af9bba8cc (diff) |
Improve memory usage in QML/V4 engine.
* Don't create prototype Object for bindings and
signal handlers. It is inaccessible and not required.
This saves one Object-sized allocation per binding.
* Shrink the size of QQmlContextWrapper by removing
the v8 member variable.
* Shrink the size of QObjectWrapper by moving the destroy
identifier to the engine.
Change-Id: I76e84e4c0581e97a19d2e959f814ac84d9c431fa
Task-number: QTBUG-37134
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvme.cpp')
-rw-r--r-- | src/qml/qml/qqmlvme.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlvme.cpp b/src/qml/qml/qqmlvme.cpp index ce4997fef9..83c1f6595c 100644 --- a/src/qml/qml/qqmlvme.cpp +++ b/src/qml/qml/qqmlvme.cpp @@ -800,7 +800,7 @@ QObject *QQmlVME::run(QList<QQmlError> *errors, QV4::Function *runtimeFunction = COMP->compilationUnit->runtimeFunctions[instr.runtimeFunctionIndex]; - tmpValue = QV4::FunctionObject::creatScriptFunction(qmlContext, runtimeFunction); + tmpValue = QV4::FunctionObject::creatScriptFunction(qmlContext, runtimeFunction, /*createProto*/ false); QQmlBoundSignal *bs = new QQmlBoundSignal(target, instr.signalIndex, target, engine); QQmlBoundSignalExpression *expr = @@ -862,7 +862,7 @@ QObject *QQmlVME::run(QList<QQmlError> *errors, QV4::Function *runtimeFunction = COMP->compilationUnit->runtimeFunctions[instr.functionIndex]; - tmpValue = QV4::FunctionObject::creatScriptFunction(qmlContext, runtimeFunction); + tmpValue = QV4::FunctionObject::creatScriptFunction(qmlContext, runtimeFunction, /*createProto*/ false); QQmlBinding *bind = new QQmlBinding(tmpValue, context, CTXT, COMP->name, instr.line, instr.column); bindValues.push(bind); |