aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativescript.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2012-02-16 14:10:12 +0000
committerQt by Nokia <qt-info@nokia.com>2012-02-20 16:25:40 +0100
commitd1c2fb2e33f687ca883c67bcd5e0d73d1de32bdc (patch)
tree43bd7633c2191901f881203a0f0a7b2a7a74c04a /src/declarative/qml/qdeclarativescript.cpp
parent08566134e96971a8e8552a10ca7d6f31fca8a618 (diff)
Reduce memory by not calling QUrl::toString() multiple times
Change-Id: I57ce25f4e20cac048ff507a8c195b83adc30040d Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/declarative/qml/qdeclarativescript.cpp')
-rw-r--r--src/declarative/qml/qdeclarativescript.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/declarative/qml/qdeclarativescript.cpp b/src/declarative/qml/qdeclarativescript.cpp
index 48384ce420..7a2247fac0 100644
--- a/src/declarative/qml/qdeclarativescript.cpp
+++ b/src/declarative/qml/qdeclarativescript.cpp
@@ -1287,12 +1287,17 @@ public:
};
}
-bool QDeclarativeScript::Parser::parse(const QByteArray &qmldata, const QUrl &url)
+bool QDeclarativeScript::Parser::parse(const QByteArray &qmldata, const QUrl &url,
+ const QString &urlString)
{
clear();
- const QString fileName = url.toString();
- _scriptFile = fileName;
+ if (urlString.isEmpty()) {
+ _scriptFile = url.toString();
+ } else {
+ // Q_ASSERT(urlString == url.toString());
+ _scriptFile = urlString;
+ }
QTextStream stream(qmldata, QIODevice::ReadOnly);
#ifndef QT_NO_TEXTCODEC
@@ -1300,7 +1305,7 @@ bool QDeclarativeScript::Parser::parse(const QByteArray &qmldata, const QUrl &ur
#endif
QString *code = _pool.NewString(stream.readAll());
- data = new QDeclarativeScript::ParserJsASTData(fileName);
+ data = new QDeclarativeScript::ParserJsASTData(_scriptFile);
Lexer lexer(&data->engine);
lexer.setCode(*code, /*line = */ 1);