From 293fc4d4b4eb4caa5f50efe23252fe7d93b28df4 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Mon, 24 Aug 2009 13:07:11 +0200 Subject: use QVarLengthArray instead of QVector for holding JS arguments It's faster. Reviewed-by: Olivier Goffart --- src/script/api/qscriptvalue.cpp | 7 +++---- src/script/bridge/qscriptqobject.cpp | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/script/api/qscriptvalue.cpp b/src/script/api/qscriptvalue.cpp index 93d6be8..922b068 100644 --- a/src/script/api/qscriptvalue.cpp +++ b/src/script/api/qscriptvalue.cpp @@ -63,6 +63,7 @@ #include #include #include +#include #include #include "utils/qscriptdate_p.h" @@ -1943,8 +1944,7 @@ QScriptValue QScriptValue::call(const QScriptValue &thisObject, if (!jscThisObject || !jscThisObject.isObject()) jscThisObject = d->engine->globalObject(); - QVector argsVector; - argsVector.resize(args.size()); + QVarLengthArray argsVector(args.size()); for (int i = 0; i < args.size(); ++i) { const QScriptValue &arg = args.at(i); if (!arg.isValid()) { @@ -2077,8 +2077,7 @@ QScriptValue QScriptValue::construct(const QScriptValueList &args) return QScriptValue(); JSC::ExecState *exec = d->engine->currentFrame; - QVector argsVector; - argsVector.resize(args.size()); + QVarLengthArray argsVector(args.size()); for (int i = 0; i < args.size(); ++i) { if (!args.at(i).isValid()) argsVector[i] = JSC::jsUndefined(); diff --git a/src/script/bridge/qscriptqobject.cpp b/src/script/bridge/qscriptqobject.cpp index d45a6d8..34e6504 100644 --- a/src/script/bridge/qscriptqobject.cpp +++ b/src/script/bridge/qscriptqobject.cpp @@ -2022,8 +2022,7 @@ void QObjectConnectionManager::execute(int slotIndex, void **argv) int argc = parameterTypes.count(); JSC::ExecState *exec = engine->currentFrame; - QVector argsVector; - argsVector.resize(argc); + QVarLengthArray argsVector(argc); for (int i = 0; i < argc; ++i) { // ### optimize -- no need to convert via QScriptValue QScriptValue actual; -- cgit v0.12