summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib
diff options
context:
space:
mode:
authorQt by Nokia <qt-info@nokia.com>2011-04-27 12:05:43 +0200
committeraxis <qt-info@nokia.com>2011-04-27 12:05:43 +0200
commit38be0d13830efd2d98281c645c3a60afe05ffece (patch)
tree6ea73f3ec77f7d153333779883e8120f82820abe /tests/benchmarks/corelib
Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
Diffstat (limited to 'tests/benchmarks/corelib')
-rw-r--r--tests/benchmarks/corelib/codecs/codecs.pro3
-rw-r--r--tests/benchmarks/corelib/codecs/qtextcodec/main.cpp185
-rw-r--r--tests/benchmarks/corelib/codecs/qtextcodec/qtextcodec.pro16
-rw-r--r--tests/benchmarks/corelib/codecs/qtextcodec/utf-8.txt72
-rw-r--r--tests/benchmarks/corelib/corelib.pro17
-rw-r--r--tests/benchmarks/corelib/io/io.pro9
-rw-r--r--tests/benchmarks/corelib/io/qdir/10000/10000.pro10
-rw-r--r--tests/benchmarks/corelib/io/qdir/10000/bench_qdir_10000.cpp198
-rw-r--r--tests/benchmarks/corelib/io/qdir/qdir.pro2
-rw-r--r--tests/benchmarks/corelib/io/qdir/tree/4.6.0-list.txt11963
-rw-r--r--tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp240
-rw-r--r--tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.qrc5
-rw-r--r--tests/benchmarks/corelib/io/qdir/tree/tree.pro11
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/main.cpp251
-rwxr-xr-xtests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro23
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp678
-rw-r--r--tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h99
-rw-r--r--tests/benchmarks/corelib/io/qfile/main.cpp684
-rw-r--r--tests/benchmarks/corelib/io/qfile/qfile.pro7
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/main.cpp125
-rw-r--r--tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro12
-rw-r--r--tests/benchmarks/corelib/io/qiodevice/main.cpp107
-rwxr-xr-xtests/benchmarks/corelib/io/qiodevice/qiodevice.pro13
-rw-r--r--tests/benchmarks/corelib/io/qtemporaryfile/main.cpp103
-rw-r--r--tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro12
-rw-r--r--tests/benchmarks/corelib/io/qurl/main.cpp244
-rw-r--r--tests/benchmarks/corelib/io/qurl/qurl.pro7
-rw-r--r--tests/benchmarks/corelib/kernel/events/events.pro8
-rw-r--r--tests/benchmarks/corelib/kernel/events/main.cpp187
-rw-r--r--tests/benchmarks/corelib/kernel/kernel.pro7
-rw-r--r--tests/benchmarks/corelib/kernel/qmetaobject/main.cpp264
-rw-r--r--tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro5
-rw-r--r--tests/benchmarks/corelib/kernel/qmetatype/qmetatype.pro7
-rw-r--r--tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp285
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/main.cpp185
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/object.cpp68
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/object.h76
-rw-r--r--tests/benchmarks/corelib/kernel/qobject/qobject.pro9
-rw-r--r--tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/qtimer_vs_qmetaobject.pro12
-rw-r--r--tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/tst_qtimer_vs_qmetaobject.cpp96
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/qvariant.pro11
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp272
-rw-r--r--tests/benchmarks/corelib/plugin/plugin.pro2
-rw-r--r--tests/benchmarks/corelib/plugin/quuid/quuid.pro6
-rw-r--r--tests/benchmarks/corelib/plugin/quuid/tst_quuid.cpp66
-rw-r--r--tests/benchmarks/corelib/thread/qmutex/qmutex.pro6
-rw-r--r--tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp452
-rw-r--r--tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro6
-rw-r--r--tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp124
-rw-r--r--tests/benchmarks/corelib/thread/qwaitcondition/qwaitcondition.pro5
-rw-r--r--tests/benchmarks/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp210
-rw-r--r--tests/benchmarks/corelib/thread/thread.pro3
-rw-r--r--tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro9
-rw-r--r--tests/benchmarks/corelib/tools/containers-associative/main.cpp142
-rw-r--r--tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro9
-rw-r--r--tests/benchmarks/corelib/tools/containers-sequential/main.cpp265
-rw-r--r--tests/benchmarks/corelib/tools/qbytearray/main.cpp92
-rwxr-xr-xtests/benchmarks/corelib/tools/qbytearray/qbytearray.pro12
-rw-r--r--tests/benchmarks/corelib/tools/qhash/data.txt195
-rw-r--r--tests/benchmarks/corelib/tools/qhash/outofline.cpp90
-rw-r--r--tests/benchmarks/corelib/tools/qhash/qhash.pro6
-rw-r--r--tests/benchmarks/corelib/tools/qhash/qhash_string.cpp131
-rw-r--r--tests/benchmarks/corelib/tools/qhash/qhash_string.h52
-rw-r--r--tests/benchmarks/corelib/tools/qrect/main.cpp329
-rw-r--r--tests/benchmarks/corelib/tools/qrect/qrect.pro12
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/main.cpp594
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/qregexp.pro21
-rw-r--r--tests/benchmarks/corelib/tools/qregexp/qregexp.qrc6
-rw-r--r--tests/benchmarks/corelib/tools/qstring/data.cpp1281
-rw-r--r--tests/benchmarks/corelib/tools/qstring/data.h70
-rw-r--r--tests/benchmarks/corelib/tools/qstring/fromlatin1.cpp43065
-rw-r--r--tests/benchmarks/corelib/tools/qstring/fromutf8.cpp28567
-rw-r--r--tests/benchmarks/corelib/tools/qstring/generatelist.pl198
-rw-r--r--tests/benchmarks/corelib/tools/qstring/generatelist_char.pl208
-rw-r--r--tests/benchmarks/corelib/tools/qstring/main.cpp2601
-rw-r--r--tests/benchmarks/corelib/tools/qstring/qstring.pro20
-rw-r--r--tests/benchmarks/corelib/tools/qstring/utf-8.txt72
-rw-r--r--tests/benchmarks/corelib/tools/qstringbuilder/main.cpp433
-rw-r--r--tests/benchmarks/corelib/tools/qstringbuilder/qstringbuilder.pro12
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/.gitignore1
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/main.cpp218
-rw-r--r--tests/benchmarks/corelib/tools/qstringlist/qstringlist.pro8
-rw-r--r--tests/benchmarks/corelib/tools/qvector/main.cpp390
-rw-r--r--tests/benchmarks/corelib/tools/qvector/outofline.cpp81
-rw-r--r--tests/benchmarks/corelib/tools/qvector/qrawvector.h742
-rw-r--r--tests/benchmarks/corelib/tools/qvector/qvector.pro6
-rw-r--r--tests/benchmarks/corelib/tools/tools.pro11
87 files changed, 97417 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/codecs/codecs.pro b/tests/benchmarks/corelib/codecs/codecs.pro
new file mode 100644
index 0000000000..dab324b859
--- /dev/null
+++ b/tests/benchmarks/corelib/codecs/codecs.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = qtextcodec
+
diff --git a/tests/benchmarks/corelib/codecs/qtextcodec/main.cpp b/tests/benchmarks/corelib/codecs/qtextcodec/main.cpp
new file mode 100644
index 0000000000..5e87167bd5
--- /dev/null
+++ b/tests/benchmarks/corelib/codecs/qtextcodec/main.cpp
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QTextCodec>
+#include <QFile>
+#include <qtest.h>
+
+#ifdef Q_OS_SYMBIAN
+// In Symbian OS test data is located in applications private dir
+// Application private dir is default serach path for files, so SRCDIR can be set to empty
+#define SRCDIR ""
+#endif
+
+Q_DECLARE_METATYPE(QList<QByteArray>)
+Q_DECLARE_METATYPE(QTextCodec *)
+
+class tst_QTextCodec: public QObject
+{
+ Q_OBJECT
+private slots:
+ void codecForName() const;
+ void codecForName_data() const;
+ void codecForMib() const;
+ void fromUnicode_data() const;
+ void fromUnicode() const;
+ void toUnicode_data() const;
+ void toUnicode() const;
+};
+
+void tst_QTextCodec::codecForName() const
+{
+ QFETCH(QList<QByteArray>, codecs);
+
+ QBENCHMARK {
+ foreach(const QByteArray& c, codecs) {
+ QVERIFY(QTextCodec::codecForName(c));
+ QVERIFY(QTextCodec::codecForName(c + "-"));
+ }
+ foreach(const QByteArray& c, codecs) {
+ QVERIFY(QTextCodec::codecForName(c + "+"));
+ QVERIFY(QTextCodec::codecForName(c + "*"));
+ }
+ }
+}
+
+void tst_QTextCodec::codecForName_data() const
+{
+ QTest::addColumn<QList<QByteArray> >("codecs");
+
+ QTest::newRow("all") << QTextCodec::availableCodecs();
+ QTest::newRow("many utf-8") << (QList<QByteArray>()
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8"
+ << "utf-8" << "utf-8" << "utf-8" << "utf-8" << "utf-8" );
+}
+
+void tst_QTextCodec::codecForMib() const
+{
+ QBENCHMARK {
+ QTextCodec::codecForMib(106);
+ QTextCodec::codecForMib(111);
+ QTextCodec::codecForMib(106);
+ QTextCodec::codecForMib(2254);
+ QTextCodec::codecForMib(2255);
+ QTextCodec::codecForMib(2256);
+ QTextCodec::codecForMib(2257);
+ QTextCodec::codecForMib(2258);
+ QTextCodec::codecForMib(111);
+ QTextCodec::codecForMib(2250);
+ QTextCodec::codecForMib(2251);
+ QTextCodec::codecForMib(2252);
+ QTextCodec::codecForMib(106);
+ QTextCodec::codecForMib(106);
+ QTextCodec::codecForMib(106);
+ QTextCodec::codecForMib(106);
+ }
+}
+
+void tst_QTextCodec::fromUnicode_data() const
+{
+ QTest::addColumn<QTextCodec*>("codec");
+
+ QTest::newRow("utf-8") << QTextCodec::codecForName("utf-8");
+ QTest::newRow("latin 1") << QTextCodec::codecForName("latin 1");
+ QTest::newRow("utf-16") << QTextCodec::codecForName("utf16"); ;
+ QTest::newRow("utf-32") << QTextCodec::codecForName("utf32");
+ QTest::newRow("latin15") << QTextCodec::codecForName("iso-8859-15");
+ QTest::newRow("eucKr") << QTextCodec::codecForName("eucKr");
+}
+
+
+void tst_QTextCodec::fromUnicode() const
+{
+ QFETCH(QTextCodec*, codec);
+ QFile file(SRCDIR "utf-8.txt");
+ if (!file.open(QFile::ReadOnly)) {
+ qFatal("Cannot open input file");
+ return;
+ }
+ QByteArray data = file.readAll();
+ const char *d = data.constData();
+ int size = data.size();
+ QString s = QString::fromUtf8(d, size);
+ s = s + s + s;
+ s = s + s + s;
+ QBENCHMARK {
+ for (int i = 0; i < 10; i ++)
+ codec->fromUnicode(s);
+ }
+}
+
+
+void tst_QTextCodec::toUnicode_data() const
+{
+ fromUnicode_data();
+}
+
+
+void tst_QTextCodec::toUnicode() const
+{
+ QFETCH(QTextCodec*, codec);
+ QFile file(SRCDIR "utf-8.txt");
+ QVERIFY(file.open(QFile::ReadOnly));
+ QByteArray data = file.readAll();
+ const char *d = data.constData();
+ int size = data.size();
+ QString s = QString::fromUtf8(d, size);
+ s = s + s + s;
+ s = s + s + s;
+ QByteArray orig = codec->fromUnicode(s);
+ QBENCHMARK {
+ for (int i = 0; i < 10; i ++)
+ codec->toUnicode(orig);
+ }
+}
+
+
+
+
+QTEST_MAIN(tst_QTextCodec)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/codecs/qtextcodec/qtextcodec.pro b/tests/benchmarks/corelib/codecs/qtextcodec/qtextcodec.pro
new file mode 100644
index 0000000000..f26d623ad3
--- /dev/null
+++ b/tests/benchmarks/corelib/codecs/qtextcodec/qtextcodec.pro
@@ -0,0 +1,16 @@
+load(qttest_p4)
+TARGET = tst_bench_qtextcodec
+QT -= gui
+SOURCES += main.cpp
+
+wince*:{
+ DEFINES += SRCDIR=\\\"\\\"
+} else:symbian* {
+ addFiles.files = utf-8.txt
+ addFiles.path = .
+ DEPLOYMENT += addFiles
+ TARGET.EPOCHEAPSIZE="0x100 0x1000000"
+} else {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+}
+
diff --git a/tests/benchmarks/corelib/codecs/qtextcodec/utf-8.txt b/tests/benchmarks/corelib/codecs/qtextcodec/utf-8.txt
new file mode 100644
index 0000000000..a8a58defe9
--- /dev/null
+++ b/tests/benchmarks/corelib/codecs/qtextcodec/utf-8.txt
@@ -0,0 +1,72 @@
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
+Språk: Norsk
+Γλώσσα: Ελληνικά
+Язык: Русский
+언어 : 한국어
+言語: 日本語
+Langage : Français
diff --git a/tests/benchmarks/corelib/corelib.pro b/tests/benchmarks/corelib/corelib.pro
new file mode 100644
index 0000000000..a2efe91a61
--- /dev/null
+++ b/tests/benchmarks/corelib/corelib.pro
@@ -0,0 +1,17 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ io \
+ kernel \
+ thread \
+ tools \
+ codecs \
+ plugin
+
+TRUSTED_BENCHMARKS += \
+ kernel/qmetaobject \
+ kernel/qmetatype \
+ kernel/qobject \
+ thread/qthreadstorage \
+ io/qdir/tree
+
+include(../trusted-benchmarks.pri) \ No newline at end of file
diff --git a/tests/benchmarks/corelib/io/io.pro b/tests/benchmarks/corelib/io/io.pro
new file mode 100644
index 0000000000..97445d7c6c
--- /dev/null
+++ b/tests/benchmarks/corelib/io/io.pro
@@ -0,0 +1,9 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qdir \
+ qdiriterator \
+ qfile \
+ qfileinfo \
+ qiodevice \
+ qtemporaryfile
+
diff --git a/tests/benchmarks/corelib/io/qdir/10000/10000.pro b/tests/benchmarks/corelib/io/qdir/10000/10000.pro
new file mode 100644
index 0000000000..93b0992763
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/10000/10000.pro
@@ -0,0 +1,10 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = bench_qdir_10000
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += bench_qdir_10000.cpp
+
+QT -= gui
diff --git a/tests/benchmarks/corelib/io/qdir/10000/bench_qdir_10000.cpp b/tests/benchmarks/corelib/io/qdir/10000/bench_qdir_10000.cpp
new file mode 100644
index 0000000000..2ed3183cca
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/10000/bench_qdir_10000.cpp
@@ -0,0 +1,198 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+
+#ifdef Q_OS_WIN
+# include <windows.h>
+#else
+# include <sys/stat.h>
+# include <sys/types.h>
+# include <dirent.h>
+# include <unistd.h>
+#endif
+
+class bench_QDir_10000 : public QObject{
+ Q_OBJECT
+public slots:
+ void initTestCase() {
+ QDir testdir = QDir::tempPath();
+
+ const QString subfolder_name = QLatin1String("test_speed");
+ QVERIFY(testdir.mkdir(subfolder_name));
+ QVERIFY(testdir.cd(subfolder_name));
+
+ for (uint i=0; i<10000; ++i) {
+ QFile file(testdir.absolutePath() + "/testfile_" + QString::number(i));
+ file.open(QIODevice::WriteOnly);
+ }
+ }
+ void cleanupTestCase() {
+ {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ testdir.setSorting(QDir::Unsorted);
+ testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden);
+ foreach (const QString &filename, testdir.entryList()) {
+ testdir.remove(filename);
+ }
+ }
+ const QDir temp = QDir(QDir::tempPath());
+ temp.rmdir(QLatin1String("test_speed"));
+ }
+private slots:
+ void baseline() {}
+
+ void sizeSpeed() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ QBENCHMARK {
+ QFileInfoList fileInfoList = testdir.entryInfoList(QDir::Files, QDir::Unsorted);
+ foreach (const QFileInfo &fileInfo, fileInfoList) {
+ fileInfo.isDir();
+ fileInfo.size();
+ }
+ }
+ }
+ void sizeSpeedIterator() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ QBENCHMARK {
+ QDirIterator dit(testdir.path(), QDir::Files);
+ while (dit.hasNext()) {
+ dit.next();
+ dit.fileInfo().isDir();
+ dit.fileInfo().size();
+ }
+ }
+ }
+
+ void sizeSpeedWithoutFilter() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ QBENCHMARK {
+ QFileInfoList fileInfoList = testdir.entryInfoList(QDir::NoFilter, QDir::Unsorted);
+ foreach (const QFileInfo &fileInfo, fileInfoList) {
+ fileInfo.size();
+ }
+ }
+ }
+ void sizeSpeedWithoutFilterIterator() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ QBENCHMARK {
+ QDirIterator dit(testdir.path());
+ while (dit.hasNext()) {
+ dit.next();
+ dit.fileInfo().isDir();
+ dit.fileInfo().size();
+ }
+ }
+ }
+
+ void sizeSpeedWithoutFileInfoList() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ testdir.setSorting(QDir::Unsorted);
+ QBENCHMARK {
+ QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted);
+ foreach (const QString &filename, fileList) {
+ QFileInfo fileInfo(filename);
+ fileInfo.size();
+ }
+ }
+ }
+
+ void iDontWantAnyStat() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+ testdir.setSorting(QDir::Unsorted);
+ testdir.setFilter(QDir::AllEntries | QDir::System | QDir::Hidden);
+ QBENCHMARK {
+ QStringList fileList = testdir.entryList(QDir::NoFilter, QDir::Unsorted);
+ foreach (const QString &filename, fileList) {
+
+ }
+ }
+ }
+ void iDontWantAnyStatIterator() {
+ QBENCHMARK {
+ QDirIterator dit(QDir::tempPath() + QLatin1String("/test_speed"));
+ while (dit.hasNext()) {
+ dit.next();
+ }
+ }
+ }
+
+ void sizeSpeedWithoutFilterLowLevel() {
+ QDir testdir(QDir::tempPath() + QLatin1String("/test_speed"));
+#ifdef Q_OS_WIN
+ const wchar_t *dirpath = (wchar_t*)testdir.absolutePath().utf16();
+ wchar_t appendedPath[MAX_PATH];
+ wcscpy(appendedPath, dirpath);
+ wcscat(appendedPath, L"\\*");
+
+ WIN32_FIND_DATA fd;
+ HANDLE hSearch = FindFirstFileW(appendedPath, &fd);
+ QVERIFY(hSearch != INVALID_HANDLE_VALUE);
+
+ QBENCHMARK {
+ do {
+
+ } while (FindNextFile(hSearch, &fd));
+ }
+ FindClose(hSearch);
+#else
+ DIR *dir = opendir(qPrintable(testdir.absolutePath()));
+ QVERIFY(dir);
+
+ QVERIFY(!chdir(qPrintable(testdir.absolutePath())));
+ QBENCHMARK {
+ struct dirent *item = readdir(dir);
+ while (item) {
+ char *fileName = item->d_name;
+
+ struct stat fileStat;
+ QVERIFY(!stat(fileName, &fileStat));
+
+ item = readdir(dir);
+ }
+ }
+ closedir(dir);
+#endif
+ }
+};
+
+QTEST_MAIN(bench_QDir_10000)
+#include "bench_qdir_10000.moc"
diff --git a/tests/benchmarks/corelib/io/qdir/qdir.pro b/tests/benchmarks/corelib/io/qdir/qdir.pro
new file mode 100644
index 0000000000..c572566759
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/qdir.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = 10000
diff --git a/tests/benchmarks/corelib/io/qdir/tree/4.6.0-list.txt b/tests/benchmarks/corelib/io/qdir/tree/4.6.0-list.txt
new file mode 100644
index 0000000000..b915320e9e
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/tree/4.6.0-list.txt
@@ -0,0 +1,11963 @@
+0 src/
+0 3rdparty/
+0 ce-compat/
+0 ce_time.c
+ ce_time.h
+2 clucene/
+0 APACHE.license
+ AUTHORS
+ ChangeLog
+ COPYING
+ LGPL.license
+ README
+ src/
+0 CLucene/
+0 analysis/
+0 AnalysisHeader.cpp
+ AnalysisHeader.h
+ Analyzers.cpp
+ Analyzers.h
+ standard/
+0 StandardAnalyzer.cpp
+ StandardAnalyzer.h
+ StandardFilter.cpp
+ StandardFilter.h
+ StandardTokenizerConstants.h
+ StandardTokenizer.cpp
+ StandardTokenizer.h
+3 CLBackwards.h
+ CLConfig.h
+ CLMonolithic.cpp
+ config/
+0 CompilerAcc.h
+ CompilerBcb.h
+ CompilerGcc.h
+ compiler.h
+ CompilerMsvc.h
+ define_std.h
+ gunichartables.cpp
+ gunichartables.h
+ PlatformMac.h
+ PlatformUnix.h
+ PlatformWin32.h
+ repl_lltot.cpp
+ repl_tchar.h
+ repl_tcscasecmp.cpp
+ repl_tcslwr.cpp
+ repl_tcstod.cpp
+ repl_tcstoll.cpp
+ repl_tprintf.cpp
+ repl_wchar.h
+ threadCSection.h
+ threadPthread.h
+ threads.cpp
+ utf8.cpp
+2 debug/
+0 condition.cpp
+ condition.h
+ error.cpp
+ error.h
+ lucenebase.h
+ mem.h
+ memtracking.cpp
+2 document/
+0 DateField.cpp
+ DateField.h
+ Document.cpp
+ Document.h
+ Field.cpp
+ Field.h
+3 CLucene.h
+ CLucene/index/
+0 CompoundFile.cpp
+ CompoundFile.h
+ DocumentWriter.cpp
+ DocumentWriter.h
+ FieldInfo.h
+ FieldInfos.cpp
+ FieldInfos.h
+ FieldsReader.cpp
+ FieldsReader.h
+ FieldsWriter.cpp
+ FieldsWriter.h
+ IndexModifier.cpp
+ IndexModifier.h
+ IndexReader.cpp
+ IndexReader.h
+ IndexWriter.cpp
+ IndexWriter.h
+ MultiReader.cpp
+ MultiReader.h
+ SegmentHeader.h
+ SegmentInfos.cpp
+ SegmentInfos.h
+ SegmentMergeInfo.cpp
+ SegmentMergeInfo.h
+ SegmentMergeQueue.cpp
+ SegmentMergeQueue.h
+ SegmentMerger.cpp
+ SegmentMerger.h
+ SegmentReader.cpp
+ SegmentTermDocs.cpp
+ SegmentTermEnum.cpp
+ SegmentTermEnum.h
+ SegmentTermPositions.cpp
+ SegmentTermVector.cpp
+ Term.cpp
+ Term.h
+ TermInfo.cpp
+ TermInfo.h
+ TermInfosReader.cpp
+ TermInfosReader.h
+ TermInfosWriter.cpp
+ TermInfosWriter.h
+ Terms.h
+ TermVector.h
+ TermVectorReader.cpp
+ TermVectorWriter.cpp
+2 CLucene/LuceneThreads.h
+ CLucene/queryParser/
+0 Lexer.cpp
+ Lexer.h
+ MultiFieldQueryParser.cpp
+ MultiFieldQueryParser.h
+ QueryParserBase.cpp
+ QueryParserBase.h
+ QueryParser.cpp
+ QueryParser.h
+ QueryToken.cpp
+ QueryToken.h
+ TokenList.cpp
+ TokenList.h
+2 CLucene/search/
+0 BooleanClause.h
+ BooleanQuery.cpp
+ BooleanQuery.h
+ BooleanScorer.cpp
+ BooleanScorer.h
+ CachingWrapperFilter.cpp
+ CachingWrapperFilter.h
+ ChainedFilter.cpp
+ ChainedFilter.h
+ Compare.h
+ ConjunctionScorer.cpp
+ ConjunctionScorer.h
+ DateFilter.cpp
+ DateFilter.h
+ ExactPhraseScorer.cpp
+ ExactPhraseScorer.h
+ Explanation.cpp
+ Explanation.h
+ FieldCache.cpp
+ FieldCache.h
+ FieldCacheImpl.cpp
+ FieldCacheImpl.h
+ FieldDoc.h
+ FieldDocSortedHitQueue.cpp
+ FieldDocSortedHitQueue.h
+ FieldSortedHitQueue.cpp
+ FieldSortedHitQueue.h
+ FilteredTermEnum.cpp
+ FilteredTermEnum.h
+ Filter.h
+ FuzzyQuery.cpp
+ FuzzyQuery.h
+ HitQueue.cpp
+ HitQueue.h
+ Hits.cpp
+ IndexSearcher.cpp
+ IndexSearcher.h
+ MultiSearcher.cpp
+ MultiSearcher.h
+ MultiTermQuery.cpp
+ MultiTermQuery.h
+ PhrasePositions.cpp
+ PhrasePositions.h
+ PhraseQuery.cpp
+ PhraseQuery.h
+ PhraseQueue.h
+ PhraseScorer.cpp
+ PhraseScorer.h
+ PrefixQuery.cpp
+ PrefixQuery.h
+ QueryFilter.cpp
+ QueryFilter.h
+ RangeFilter.cpp
+ RangeFilter.h
+ RangeQuery.cpp
+ RangeQuery.h
+ Scorer.h
+ SearchHeader.cpp
+ SearchHeader.h
+ Similarity.cpp
+ Similarity.h
+ SloppyPhraseScorer.cpp
+ SloppyPhraseScorer.h
+ Sort.cpp
+ Sort.h
+ TermQuery.cpp
+ TermQuery.h
+ TermScorer.cpp
+ TermScorer.h
+ WildcardQuery.cpp
+ WildcardQuery.h
+ WildcardTermEnum.cpp
+ WildcardTermEnum.h
+2 CLucene/StdHeader.cpp
+ CLucene/StdHeader.h
+ CLucene/store/
+0 Directory.h
+ FSDirectory.cpp
+ FSDirectory.h
+ IndexInput.cpp
+ IndexInput.h
+ IndexOutput.cpp
+ IndexOutput.h
+ InputStream.h
+ Lock.cpp
+ Lock.h
+ MMapInput.cpp
+ OutputStream.h
+ RAMDirectory.cpp
+ RAMDirectory.h
+ TransactionalRAMDirectory.cpp
+ TransactionalRAMDirectory.h
+2 CLucene/util/
+0 Arrays.h
+ BitSet.cpp
+ BitSet.h
+ bufferedstream.h
+ dirent.cpp
+ dirent.h
+ Equators.cpp
+ Equators.h
+ FastCharStream.cpp
+ FastCharStream.h
+ fileinputstream.cpp
+ fileinputstream.h
+ inputstreambuffer.h
+ jstreamsconfig.h
+ Misc.cpp
+ Misc.h
+ PriorityQueue.h
+ Reader.cpp
+ Reader.h
+ streambase.h
+ StringBuffer.cpp
+ StringBuffer.h
+ StringIntern.cpp
+ StringIntern.h
+ stringreader.h
+ subinputstream.h
+ ThreadLocal.cpp
+ ThreadLocal.h
+ VoidList.h
+ VoidMap.h
+4 des/
+0 des.cpp
+2 easing/
+0 easing.cpp
+ legal.qdoc
+2 fonts/
+0 5x7.bdf
+ 6x13.bdf
+ COPYING.Cursor
+ COPYING.Helvetica
+ COPYING.Utopia
+ COPYRIGHT.BH
+ COPYRIGHT.Charter
+ COPYRIGHT.Courier
+ COPYRIGHT.DejaVu
+ COPYRIGHT.IBM
+ COPYRIGHT.Unifont
+ COPYRIGHT.Vera
+ helvB08.bdf
+ helvB10.bdf
+ helvB12.bdf
+ helvB14.bdf
+ helvB18.bdf
+ helvB24.bdf
+ helvBO08.bdf
+ helvBO10.bdf
+ helvBO12.bdf
+ helvBO14.bdf
+ helvBO18.bdf
+ helvBO24.bdf
+ helvO08.bdf
+ helvO10.bdf
+ helvO12.bdf
+ helvO14.bdf
+ helvO18.bdf
+ helvO24.bdf
+ helvR08.bdf
+ helvR10.bdf
+ helvR12.bdf
+ helvR14.bdf
+ helvR18.bdf
+ helvR24.bdf
+ micro.bdf
+ README.DejaVu
+ unifont.bdf
+2 freetype/
+0 autogen.sh
+ builds/
+0 amiga/
+0 include/
+0 freetype/
+0 config/
+0 ftconfig.h
+ ftmodule.h
+4 makefile
+0 .os4
+2 README
+ smakefile
+ src/
+0 base/
+0 ftdebug.c
+ ftsystem.c
+4 ansi/
+0 ansi-def.mk
+ ansi.mk
+2 atari/
+0 ATARI.H
+ FNames.SIC
+ FREETYPE.PRJ
+ README.TXT
+2 beos/
+0 beos-def.mk
+ beos.mk
+ detect.mk
+2 compiler/
+0 ansi-cc.mk
+ bcc-dev.mk
+ bcc.mk
+ emx.mk
+ gcc-dev.mk
+ gcc.mk
+ intelc.mk
+ unix-lcc.mk
+ visualage.mk
+ visualc.mk
+ watcom.mk
+ win-lcc.mk
+2 detect.mk
+ dos/
+0 detect.mk
+ dos-def.mk
+ dos-emx.mk
+ dos-gcc.mk
+ dos-wat.mk
+2 exports.mk
+ freetype.mk
+ link_dos.mk
+ link_std.mk
+ mac/
+0 ascii2mpw.py
+ FreeType.m68k_cfm.make.txt
+ FreeType.m68k_far.make.txt
+ FreeType.ppc_carbon.make.txt
+ FreeType.ppc_classic.make.txt
+ ftlib.prj.xml
+ ftmac.c
+ README
+2 modules.mk
+ newline
+ os2/
+0 detect.mk
+ os2-def.mk
+ os2-dev.mk
+ os2-gcc.mk
+2 symbian/
+0 bld.inf
+ freetype.mmp
+2 toplevel.mk
+ unix/
+0 aclocal.m4
+ config.guess
+ config.sub
+ configure
+0 .ac
+ .raw
+2 detect.mk
+ freetype2.in
+ freetype2.m4
+ freetype-config.in
+ ft2unix.h
+ ftconfig.h
+ ftconfig.in
+ ft-munmap.m4
+ ftsystem.c
+ install.mk
+ install-sh
+ ltmain.sh
+ mkinstalldirs
+ unix-cc.in
+ unixddef.mk
+ unix-def.in
+ unix-dev.mk
+ unix-lcc.mk
+ unix.mk
+2 vms/
+0 ftconfig.h
+ ftsystem.c
+2 win32/
+0 detect.mk
+ ftdebug.c
+ vc2005/
+0 freetype.sln
+ freetype.vcproj
+ index.html
+2 vc2008/
+0 freetype.sln
+ freetype.vcproj
+ index.html
+2 visualc/
+0 freetype.dsp
+ freetype.dsw
+ index.html
+2 w32-bccd.mk
+ w32-bcc.mk
+ w32-dev.mk
+ w32-gcc.mk
+ w32-icc.mk
+ w32-intl.mk
+ w32-lcc.mk
+ w32-mingw32.mk
+ w32-vcc.mk
+ w32-wat.mk
+ win32-def.mk
+2 wince/
+0 ftdebug.c
+ vc2005-ce/
+0 freetype.sln
+ freetype.vcproj
+ index.html
+2 vc2008-ce/
+0 freetype.sln
+ freetype.vcproj
+ index.html
+4 ChangeLog
+0 .20
+ .21
+ .22
+2 configure
+ devel/
+0 ft2build.h
+ ftoption.h
+2 docs/
+0 CHANGES
+ CUSTOMIZE
+ DEBUG
+ formats.txt
+ FTL.TXT
+ GPL.TXT
+ INSTALL
+0 .ANY
+ .CROSS
+ .GNU
+ .MAC
+ .UNIX
+ .VMS
+2 LICENSE.TXT
+ MAKEPP
+ PATENTS
+ PROBLEMS
+ raster.txt
+ reference/
+0 ft2-base_interface.html
+ ft2-basic_types.html
+ ft2-bdf_fonts.html
+ ft2-bitmap_handling.html
+ ft2-cache_subsystem.html
+ ft2-cid_fonts.html
+ ft2-computations.html
+ ft2-font_formats.html
+ ft2-gasp_table.html
+ ft2-glyph_management.html
+ ft2-glyph_stroker.html
+ ft2-glyph_variants.html
+ ft2-gx_validation.html
+ ft2-gzip.html
+ ft2-header_file_macros.html
+ ft2-incremental.html
+ ft2-index.html
+ ft2-lcd_filtering.html
+ ft2-list_processing.html
+ ft2-lzw.html
+ ft2-mac_specific.html
+ ft2-module_management.html
+ ft2-multiple_masters.html
+ ft2-ot_validation.html
+ ft2-outline_processing.html
+ ft2-pfr_fonts.html
+ ft2-quick_advance.html
+ ft2-raster.html
+ ft2-sfnt_names.html
+ ft2-sizes_management.html
+ ft2-system_interface.html
+ ft2-toc.html
+ ft2-truetype_engine.html
+ ft2-truetype_tables.html
+ ft2-type1_tables.html
+ ft2-user_allocation.html
+ ft2-version.html
+ ft2-winfnt_fonts.html
+ README
+2 release
+ TODO
+ TRUETYPE
+ UPGRADE.UNIX
+ VERSION.DLL
+2 include/
+0 freetype/
+0 config/
+0 ftconfig.h
+ ftheader.h
+ ftmodule.h
+ ftoption.h
+ ftstdlib.h
+2 freetype.h
+ ftadvanc.h
+ ftbbox.h
+ ftbdf.h
+ ftbitmap.h
+ ftcache.h
+ ftchapters.h
+ ftcid.h
+ fterrdef.h
+ fterrors.h
+ ftgasp.h
+ ftglyph.h
+ ftgxval.h
+ ftgzip.h
+ ftimage.h
+ ftincrem.h
+ ftlcdfil.h
+ ftlist.h
+ ftlzw.h
+ ftmac.h
+ ftmm.h
+ ftmodapi.h
+ ftmoderr.h
+ ftotval.h
+ ftoutln.h
+ ftpfr.h
+ ftrender.h
+ ftsizes.h
+ ftsnames.h
+ ftstroke.h
+ ftsynth.h
+ ftsystem.h
+ fttrigon.h
+ fttypes.h
+ ftwinfnt.h
+ ftxf86.h
+ internal/
+0 autohint.h
+ ftcalc.h
+ ftdebug.h
+ ftdriver.h
+ ftgloadr.h
+ ftmemory.h
+ ftobjs.h
+ ftrfork.h
+ ftserv.h
+ ftstream.h
+ fttrace.h
+ ftvalid.h
+ internal.h
+ pcftypes.h
+ psaux.h
+ pshints.h
+ services/
+0 svbdf.h
+ svcid.h
+ svgldict.h
+ svgxval.h
+ svkern.h
+ svmm.h
+ svotval.h
+ svpfr.h
+ svpostnm.h
+ svpscmap.h
+ svpsinfo.h
+ svsfnt.h
+ svttcmap.h
+ svtteng.h
+ svttglyf.h
+ svwinfnt.h
+ svxf86nm.h
+2 sfnt.h
+ t1types.h
+ tttypes.h
+2 t1tables.h
+ ttnameid.h
+ tttables.h
+ tttags.h
+ ttunpat.h
+2 ft2build.h
+2 Jamfile
+ Jamrules
+ Makefile
+ modules.cfg
+ objs/
+0 README
+2 README
+0 .CVS
+2 src/
+0 autofit/
+0 afangles.c
+ afangles.h
+ afcjk.c
+ afcjk.h
+ afdummy.c
+ afdummy.h
+ aferrors.h
+ afglobal.c
+ afglobal.h
+ afhints.c
+ afhints.h
+ afindic.c
+ afindic.h
+ aflatin2.c
+ aflatin2.h
+ aflatin.c
+ aflatin.h
+ afloader.c
+ afloader.h
+ afmodule.c
+ afmodule.h
+ aftypes.h
+ afwarp.c
+ afwarp.h
+ autofit.c
+ Jamfile
+ module.mk
+ rules.mk
+2 base/
+0 ftadvanc.c
+ ftapi.c
+ ftbase.c
+ ftbase.h
+ ftbbox.c
+ ftbdf.c
+ ftbitmap.c
+ ftcalc.c
+ ftcid.c
+ ftdbgmem.c
+ ftdebug.c
+ ftfstype.c
+ ftgasp.c
+ ftgloadr.c
+ ftglyph.c
+ ftgxval.c
+ ftinit.c
+ ftlcdfil.c
+ ftmac.c
+ ftmm.c
+ ftnames.c
+ ftobjs.c
+ ftotval.c
+ ftoutln.c
+ ftpatent.c
+ ftpfr.c
+ ftrfork.c
+ ftstream.c
+ ftstroke.c
+ ftsynth.c
+ ftsystem.c
+ fttrigon.c
+ fttype1.c
+ ftutil.c
+ ftwinfnt.c
+ ftxf86.c
+ Jamfile
+ rules.mk
+2 bdf/
+0 bdf.c
+ bdfdrivr.c
+ bdfdrivr.h
+ bdferror.h
+ bdf.h
+ bdflib.c
+ Jamfile
+ module.mk
+ README
+ rules.mk
+2 cache/
+0 ftcache.c
+ ftcbasic.c
+ ftccache.c
+ ftccache.h
+ ftccback.h
+ ftccmap.c
+ ftcerror.h
+ ftcglyph.c
+ ftcglyph.h
+ ftcimage.c
+ ftcimage.h
+ ftcmanag.c
+ ftcmanag.h
+ ftcmru.c
+ ftcmru.h
+ ftcsbits.c
+ ftcsbits.h
+ Jamfile
+ rules.mk
+2 cff/
+0 cff.c
+ cffcmap.c
+ cffcmap.h
+ cffdrivr.c
+ cffdrivr.h
+ cfferrs.h
+ cffgload.c
+ cffgload.h
+ cffload.c
+ cffload.h
+ cffobjs.c
+ cffobjs.h
+ cffparse.c
+ cffparse.h
+ cfftoken.h
+ cfftypes.h
+ Jamfile
+ module.mk
+ rules.mk
+2 cid/
+0 ciderrs.h
+ cidgload.c
+ cidgload.h
+ cidload.c
+ cidload.h
+ cidobjs.c
+ cidobjs.h
+ cidparse.c
+ cidparse.h
+ cidriver.c
+ cidriver.h
+ cidtoken.h
+ Jamfile
+ module.mk
+ rules.mk
+ type1cid.c
+2 gxvalid/
+0 gxvalid.c
+ gxvalid.h
+ gxvbsln.c
+ gxvcommn.c
+ gxvcommn.h
+ gxverror.h
+ gxvfeat.c
+ gxvfeat.h
+ gxvfgen.c
+ gxvjust.c
+ gxvkern.c
+ gxvlcar.c
+ gxvmod.c
+ gxvmod.h
+ gxvmort0.c
+ gxvmort1.c
+ gxvmort2.c
+ gxvmort4.c
+ gxvmort5.c
+ gxvmort.c
+ gxvmort.h
+ gxvmorx0.c
+ gxvmorx1.c
+ gxvmorx2.c
+ gxvmorx4.c
+ gxvmorx5.c
+ gxvmorx.c
+ gxvmorx.h
+ gxvopbd.c
+ gxvprop.c
+ gxvtrak.c
+ Jamfile
+ module.mk
+ README
+ rules.mk
+2 gzip/
+0 adler32.c
+ ftgzip.c
+ infblock.c
+ infblock.h
+ infcodes.c
+ infcodes.h
+ inffixed.h
+ inflate.c
+ inftrees.c
+ inftrees.h
+ infutil.c
+ infutil.h
+ Jamfile
+ rules.mk
+ zconf.h
+ zlib.h
+ zutil.c
+ zutil.h
+2 Jamfile
+ lzw/
+0 ftlzw.c
+ ftzopen.c
+ ftzopen.h
+ Jamfile
+ rules.mk
+2 otvalid/
+0 Jamfile
+ module.mk
+ otvalid.c
+ otvalid.h
+ otvbase.c
+ otvcommn.c
+ otvcommn.h
+ otverror.h
+ otvgdef.c
+ otvgpos.c
+ otvgpos.h
+ otvgsub.c
+ otvjstf.c
+ otvmath.c
+ otvmod.c
+ otvmod.h
+ rules.mk
+2 pcf/
+0 Jamfile
+ module.mk
+ pcf.c
+ pcfdrivr.c
+ pcfdrivr.h
+ pcferror.h
+ pcf.h
+ pcfread.c
+ pcfread.h
+ pcfutil.c
+ pcfutil.h
+ README
+ rules.mk
+2 pfr/
+0 Jamfile
+ module.mk
+ pfr.c
+ pfrcmap.c
+ pfrcmap.h
+ pfrdrivr.c
+ pfrdrivr.h
+ pfrerror.h
+ pfrgload.c
+ pfrgload.h
+ pfrload.c
+ pfrload.h
+ pfrobjs.c
+ pfrobjs.h
+ pfrsbit.c
+ pfrsbit.h
+ pfrtypes.h
+ rules.mk
+2 psaux/
+0 afmparse.c
+ afmparse.h
+ Jamfile
+ module.mk
+ psaux.c
+ psauxerr.h
+ psauxmod.c
+ psauxmod.h
+ psconv.c
+ psconv.h
+ psobjs.c
+ psobjs.h
+ rules.mk
+ t1cmap.c
+ t1cmap.h
+ t1decode.c
+ t1decode.h
+2 pshinter/
+0 Jamfile
+ module.mk
+ pshalgo.c
+ pshalgo.h
+ pshglob.c
+ pshglob.h
+ pshinter.c
+ pshmod.c
+ pshmod.h
+ pshnterr.h
+ pshrec.c
+ pshrec.h
+ rules.mk
+2 psnames/
+0 Jamfile
+ module.mk
+ psmodule.c
+ psmodule.h
+ psnamerr.h
+ psnames.c
+ pstables.h
+ rules.mk
+2 raster/
+0 ftmisc.h
+ ftraster.c
+ ftraster.h
+ ftrend1.c
+ ftrend1.h
+ Jamfile
+ module.mk
+ raster.c
+ rasterrs.h
+ rules.mk
+2 sfnt/
+0 Jamfile
+ module.mk
+ rules.mk
+ sfdriver.c
+ sfdriver.h
+ sferrors.h
+ sfnt.c
+ sfobjs.c
+ sfobjs.h
+ ttbdf.c
+ ttbdf.h
+ ttcmap.c
+ ttcmap.h
+ ttkern.c
+ ttkern.h
+ ttload.c
+ ttload.h
+ ttmtx.c
+ ttmtx.h
+ ttpost.c
+ ttpost.h
+ ttsbit0.c
+ ttsbit.c
+ ttsbit.h
+2 smooth/
+0 ftgrays.c
+ ftgrays.h
+ ftsmerrs.h
+ ftsmooth.c
+ ftsmooth.h
+ Jamfile
+ module.mk
+ rules.mk
+ smooth.c
+2 tools/
+0 apinames.c
+ cordic.py
+ docmaker/
+0 content.py
+ docbeauty.py
+ docmaker.py
+ formatter.py
+ sources.py
+ tohtml.py
+ utils.py
+2 ftrandom/
+0 ftrandom.c
+ Makefile
+ README
+2 glnames.py
+ Jamfile
+ test_afm.c
+ test_bbox.c
+ test_trig.c
+2 truetype/
+0 Jamfile
+ module.mk
+ rules.mk
+ truetype.c
+ ttdriver.c
+ ttdriver.h
+ tterrors.h
+ ttgload.c
+ ttgload.h
+ ttgxvar.c
+ ttgxvar.h
+ ttinterp.c
+ ttinterp.h
+ ttobjs.c
+ ttobjs.h
+ ttpload.c
+ ttpload.h
+2 type1/
+0 Jamfile
+ module.mk
+ rules.mk
+ t1afm.c
+ t1afm.h
+ t1driver.c
+ t1driver.h
+ t1errors.h
+ t1gload.c
+ t1gload.h
+ t1load.c
+ t1load.h
+ t1objs.c
+ t1objs.h
+ t1parse.c
+ t1parse.h
+ t1tokens.h
+ type1.c
+2 type42/
+0 Jamfile
+ module.mk
+ rules.mk
+ t42drivr.c
+ t42drivr.h
+ t42error.h
+ t42objs.c
+ t42objs.h
+ t42parse.c
+ t42parse.h
+ t42types.h
+ type42.c
+2 winfonts/
+0 fnterrs.h
+ Jamfile
+ module.mk
+ rules.mk
+ winfnt.c
+ winfnt.h
+3 version.sed
+ vms_make.com
+2 .gitattributes
+ harfbuzz/
+0 AUTHORS
+ autogen.sh
+ ChangeLog
+ configure.ac
+ COPYING
+ .gitignore
+ Makefile.am
+ NEWS
+ README
+ src/
+0 .gitignore
+ harfbuzz-arabic.c
+ harfbuzz-buffer.c
+ harfbuzz-buffer.h
+ harfbuzz-buffer-private.h
+ harfbuzz.c
+ harfbuzz-dump.c
+ harfbuzz-dump.h
+ harfbuzz-dump-main.c
+ harfbuzz-external.h
+ harfbuzz-gdef.c
+ harfbuzz-gdef.h
+ harfbuzz-gdef-private.h
+ harfbuzz-global.h
+ harfbuzz-gpos.c
+ harfbuzz-gpos.h
+ harfbuzz-gpos-private.h
+ harfbuzz-gsub.c
+ harfbuzz-gsub.h
+ harfbuzz-gsub-private.h
+ harfbuzz.h
+ harfbuzz-hangul.c
+ harfbuzz-hebrew.c
+ harfbuzz-impl.c
+ harfbuzz-impl.h
+ harfbuzz-indic.cpp
+ harfbuzz-khmer.c
+ harfbuzz-myanmar.c
+ harfbuzz-open.c
+ harfbuzz-open.h
+ harfbuzz-open-private.h
+ harfbuzz-shape.h
+ harfbuzz-shaper-all.cpp
+ harfbuzz-shaper.cpp
+ harfbuzz-shaper.h
+ harfbuzz-shaper-private.h
+ harfbuzz-stream.c
+ harfbuzz-stream.h
+ harfbuzz-stream-private.h
+ harfbuzz-thai.c
+ harfbuzz-tibetan.c
+ Makefile.am
+2 tests/
+0 linebreaking/
+0 .gitignore
+ harfbuzz-qt.cpp
+ main.cpp
+ Makefile.am
+2 Makefile.am
+ shaping/
+0 .gitignore
+ main.cpp
+ Makefile.am
+ README
+4 javascriptcore/
+0 JavaScriptCore/
+0 API/
+0 APICast.h
+ JavaScriptCore.h
+ JavaScript.h
+ JSBase.cpp
+ JSBase.h
+ JSBasePrivate.h
+ JSCallbackConstructor.cpp
+ JSCallbackConstructor.h
+ JSCallbackFunction.cpp
+ JSCallbackFunction.h
+ JSCallbackObject.cpp
+ JSCallbackObjectFunctions.h
+ JSCallbackObject.h
+ JSClassRef.cpp
+ JSClassRef.h
+ JSContextRef.cpp
+ JSContextRef.h
+ JSObjectRef.cpp
+ JSObjectRef.h
+ JSProfilerPrivate.cpp
+ JSProfilerPrivate.h
+ JSRetainPtr.h
+ JSStringRefBSTR.cpp
+ JSStringRefBSTR.h
+ JSStringRefCF.cpp
+ JSStringRefCF.h
+ JSStringRef.cpp
+ JSStringRef.h
+ JSValueRef.cpp
+ JSValueRef.h
+ OpaqueJSString.cpp
+ OpaqueJSString.h
+ WebKitAvailability.h
+2 assembler/
+0 AbstractMacroAssembler.h
+ ARMAssembler.cpp
+ ARMAssembler.h
+ ARMv7Assembler.h
+ AssemblerBuffer.h
+ AssemblerBufferWithConstantPool.h
+ CodeLocation.h
+ LinkBuffer.h
+ MacroAssemblerARM.cpp
+ MacroAssemblerARM.h
+ MacroAssemblerARMv7.h
+ MacroAssemblerCodeRef.h
+ MacroAssembler.h
+ MacroAssemblerX86_64.h
+ MacroAssemblerX86Common.h
+ MacroAssemblerX86.h
+ RepatchBuffer.h
+ X86Assembler.h
+2 AUTHORS
+ bytecode/
+0 CodeBlock.cpp
+ CodeBlock.h
+ EvalCodeCache.h
+ Instruction.h
+ JumpTable.cpp
+ JumpTable.h
+ Opcode.cpp
+ Opcode.h
+ SamplingTool.cpp
+ SamplingTool.h
+ StructureStubInfo.cpp
+ StructureStubInfo.h
+2 bytecompiler/
+0 BytecodeGenerator.cpp
+ BytecodeGenerator.h
+ Label.h
+ LabelScope.h
+ RegisterID.h
+2 ChangeLog
+0 -2002-12-03
+ -2003-10-25
+ -2007-10-14
+ -2008-08-10
+ -2009-06-16
+2 config.h
+ COPYING.LIB
+ create_hash_table
+ debugger/
+0 DebuggerActivation.cpp
+ DebuggerActivation.h
+ DebuggerCallFrame.cpp
+ DebuggerCallFrame.h
+ Debugger.cpp
+ Debugger.h
+2 DerivedSources.make
+ docs/
+0 make-bytecode-docs.pl
+2 ForwardingHeaders/
+0 JavaScriptCore/
+0 APICast.h
+ JavaScriptCore.h
+ JavaScript.h
+ JSBase.h
+ JSContextRef.h
+ JSObjectRef.h
+ JSRetainPtr.h
+ JSStringRefCF.h
+ JSStringRef.h
+ JSValueRef.h
+ OpaqueJSString.h
+ WebKitAvailability.h
+3 generated/
+0 ArrayPrototype.lut.h
+ chartables.c
+ DatePrototype.lut.h
+ Grammar.cpp
+ Grammar.h
+ JSONObject.lut.h
+ Lexer.lut.h
+ MathObject.lut.h
+ NumberConstructor.lut.h
+ RegExpConstructor.lut.h
+ RegExpObject.lut.h
+ StringPrototype.lut.h
+2 headers.pri
+ Info.plist
+ interpreter/
+0 CachedCall.h
+ CallFrameClosure.h
+ CallFrame.cpp
+ CallFrame.h
+ Interpreter.cpp
+ Interpreter.h
+ RegisterFile.cpp
+ RegisterFile.h
+ Register.h
+2 JavaScriptCore.gypi
+ JavaScriptCore.order
+ JavaScriptCorePrefix.h
+ JavaScriptCore.pri
+ jit/
+0 ExecutableAllocator.cpp
+ ExecutableAllocatorFixedVMPool.cpp
+ ExecutableAllocator.h
+ ExecutableAllocatorPosix.cpp
+ ExecutableAllocatorWin.cpp
+ JITArithmetic.cpp
+ JITCall.cpp
+ JITCode.h
+ JIT.cpp
+ JIT.h
+ JITInlineMethods.h
+ JITOpcodes.cpp
+ JITPropertyAccess.cpp
+ JITStubCall.h
+ JITStubs.cpp
+ JITStubs.h
+2 jsc.cpp
+ make-generated-sources.sh
+ os-win32/
+0 stdbool.h
+ stdint.h
+2 parser/
+0 Grammar.y
+ Keywords.table
+ Lexer.cpp
+ Lexer.h
+ NodeConstructors.h
+ NodeInfo.h
+ Nodes.cpp
+ Nodes.h
+ ParserArena.cpp
+ ParserArena.h
+ Parser.cpp
+ Parser.h
+ ResultType.h
+ SourceCode.h
+ SourceProvider.h
+2 pcre/
+0 AUTHORS
+ COPYING
+ dftables
+ pcre_compile.cpp
+ pcre_exec.cpp
+ pcre.h
+ pcre_internal.h
+ pcre.pri
+ pcre_tables.cpp
+ pcre_ucp_searchfuncs.cpp
+ pcre_xclass.cpp
+ ucpinternal.h
+ ucptable.cpp
+2 profiler/
+0 CallIdentifier.h
+ HeavyProfile.cpp
+ HeavyProfile.h
+ Profile.cpp
+ ProfileGenerator.cpp
+ ProfileGenerator.h
+ Profile.h
+ ProfileNode.cpp
+ ProfileNode.h
+ Profiler.cpp
+ Profiler.h
+ ProfilerServer.h
+ ProfilerServer.mm
+ TreeProfile.cpp
+ TreeProfile.h
+2 runtime/
+0 ArgList.cpp
+ ArgList.h
+ Arguments.cpp
+ Arguments.h
+ ArrayConstructor.cpp
+ ArrayConstructor.h
+ ArrayPrototype.cpp
+ ArrayPrototype.h
+ BatchedTransitionOptimizer.h
+ BooleanConstructor.cpp
+ BooleanConstructor.h
+ BooleanObject.cpp
+ BooleanObject.h
+ BooleanPrototype.cpp
+ BooleanPrototype.h
+ CallData.cpp
+ CallData.h
+ ClassInfo.h
+ Collector.cpp
+ Collector.h
+ CollectorHeapIterator.h
+ CommonIdentifiers.cpp
+ CommonIdentifiers.h
+ Completion.cpp
+ Completion.h
+ ConstructData.cpp
+ ConstructData.h
+ DateConstructor.cpp
+ DateConstructor.h
+ DateConversion.cpp
+ DateConversion.h
+ DateInstance.cpp
+ DateInstance.h
+ DatePrototype.cpp
+ DatePrototype.h
+ ErrorConstructor.cpp
+ ErrorConstructor.h
+ Error.cpp
+ Error.h
+ ErrorInstance.cpp
+ ErrorInstance.h
+ ErrorPrototype.cpp
+ ErrorPrototype.h
+ ExceptionHelpers.cpp
+ ExceptionHelpers.h
+ Executable.cpp
+ Executable.h
+ FunctionConstructor.cpp
+ FunctionConstructor.h
+ FunctionPrototype.cpp
+ FunctionPrototype.h
+ GetterSetter.cpp
+ GetterSetter.h
+ GlobalEvalFunction.cpp
+ GlobalEvalFunction.h
+ Identifier.cpp
+ Identifier.h
+ InitializeThreading.cpp
+ InitializeThreading.h
+ InternalFunction.cpp
+ InternalFunction.h
+ JSActivation.cpp
+ JSActivation.h
+ JSAPIValueWrapper.cpp
+ JSAPIValueWrapper.h
+ JSArray.cpp
+ JSArray.h
+ JSByteArray.cpp
+ JSByteArray.h
+ JSCell.cpp
+ JSCell.h
+ JSFunction.cpp
+ JSFunction.h
+ JSGlobalData.cpp
+ JSGlobalData.h
+ JSGlobalObject.cpp
+ JSGlobalObjectFunctions.cpp
+ JSGlobalObjectFunctions.h
+ JSGlobalObject.h
+ JSImmediate.cpp
+ JSImmediate.h
+ JSLock.cpp
+ JSLock.h
+ JSNotAnObject.cpp
+ JSNotAnObject.h
+ JSNumberCell.cpp
+ JSNumberCell.h
+ JSObject.cpp
+ JSObject.h
+ JSONObject.cpp
+ JSONObject.h
+ JSPropertyNameIterator.cpp
+ JSPropertyNameIterator.h
+ JSStaticScopeObject.cpp
+ JSStaticScopeObject.h
+ JSString.cpp
+ JSString.h
+ JSType.h
+ JSTypeInfo.h
+ JSValue.cpp
+ JSValue.h
+ JSVariableObject.cpp
+ JSVariableObject.h
+ JSWrapperObject.cpp
+ JSWrapperObject.h
+ LiteralParser.cpp
+ LiteralParser.h
+ Lookup.cpp
+ Lookup.h
+ MarkStack.cpp
+ MarkStack.h
+ MarkStackPosix.cpp
+ MarkStackWin.cpp
+ MathObject.cpp
+ MathObject.h
+ NativeErrorConstructor.cpp
+ NativeErrorConstructor.h
+ NativeErrorPrototype.cpp
+ NativeErrorPrototype.h
+ NativeFunctionWrapper.h
+ NumberConstructor.cpp
+ NumberConstructor.h
+ NumberObject.cpp
+ NumberObject.h
+ NumberPrototype.cpp
+ NumberPrototype.h
+ NumericStrings.h
+ ObjectConstructor.cpp
+ ObjectConstructor.h
+ ObjectPrototype.cpp
+ ObjectPrototype.h
+ Operations.cpp
+ Operations.h
+ PropertyDescriptor.cpp
+ PropertyDescriptor.h
+ PropertyMapHashTable.h
+ PropertyNameArray.cpp
+ PropertyNameArray.h
+ PropertySlot.cpp
+ PropertySlot.h
+ Protect.h
+ PrototypeFunction.cpp
+ PrototypeFunction.h
+ PutPropertySlot.h
+ RegExpConstructor.cpp
+ RegExpConstructor.h
+ RegExp.cpp
+ RegExp.h
+ RegExpMatchesArray.h
+ RegExpObject.cpp
+ RegExpObject.h
+ RegExpPrototype.cpp
+ RegExpPrototype.h
+ ScopeChain.cpp
+ ScopeChain.h
+ ScopeChainMark.h
+ SmallStrings.cpp
+ SmallStrings.h
+ StringConstructor.cpp
+ StringConstructor.h
+ StringObject.cpp
+ StringObject.h
+ StringObjectThatMasqueradesAsUndefined.h
+ StringPrototype.cpp
+ StringPrototype.h
+ StructureChain.cpp
+ StructureChain.h
+ Structure.cpp
+ Structure.h
+ StructureTransitionTable.h
+ SymbolTable.h
+ TimeoutChecker.cpp
+ TimeoutChecker.h
+ Tracing.h
+ UString.cpp
+ UString.h
+2 THANKS
+ wrec/
+0 CharacterClassConstructor.cpp
+ CharacterClassConstructor.h
+ CharacterClass.cpp
+ CharacterClass.h
+ Escapes.h
+ Quantifier.h
+ WREC.cpp
+ WRECFunctors.cpp
+ WRECFunctors.h
+ WRECGenerator.cpp
+ WRECGenerator.h
+ WREC.h
+ WRECParser.cpp
+ WRECParser.h
+2 wscript
+ wtf/
+0 AlwaysInline.h
+ ASCIICType.h
+ Assertions.cpp
+ Assertions.h
+ AVLTree.h
+ ByteArray.cpp
+ ByteArray.h
+ CONTRIBUTORS.pthreads-win32
+ CrossThreadRefCounted.h
+ CurrentTime.cpp
+ CurrentTime.h
+ DateMath.cpp
+ DateMath.h
+ Deque.h
+ DisallowCType.h
+ dtoa.cpp
+ dtoa.h
+ FastAllocBase.h
+ FastMalloc.cpp
+ FastMalloc.h
+ Forward.h
+ GetPtr.h
+ GOwnPtr.cpp
+ GOwnPtr.h
+ HashCountedSet.h
+ HashFunctions.h
+ HashIterators.h
+ HashMap.h
+ HashSet.h
+ HashTable.cpp
+ HashTable.h
+ HashTraits.h
+ ListHashSet.h
+ ListRefPtr.h
+ Locker.h
+ MainThread.cpp
+ MainThread.h
+ MallocZoneSupport.h
+ MathExtras.h
+ MessageQueue.h
+ Noncopyable.h
+ NotFound.h
+ OwnArrayPtr.h
+ OwnFastMallocPtr.h
+ OwnPtrCommon.h
+ OwnPtr.h
+ OwnPtrWin.cpp
+ PassOwnPtr.h
+ PassRefPtr.h
+ Platform.h
+ PossiblyNull.h
+ PtrAndFlags.h
+ qt/
+0 MainThreadQt.cpp
+ ThreadingQt.cpp
+2 RandomNumber.cpp
+ RandomNumber.h
+ RandomNumberSeed.h
+ RefCounted.h
+ RefCountedLeakCounter.cpp
+ RefCountedLeakCounter.h
+ RefPtr.h
+ RefPtrHashMap.h
+ RetainPtr.h
+ SegmentedVector.h
+ StdLibExtras.h
+ StringExtras.h
+ TCPackedCache.h
+ TCPageMap.h
+ TCSpinLock.h
+ TCSystemAlloc.cpp
+ TCSystemAlloc.h
+ Threading.cpp
+ Threading.h
+ ThreadingNone.cpp
+ ThreadingPthreads.cpp
+ ThreadingWin.cpp
+ ThreadSpecific.h
+ ThreadSpecificWin.cpp
+ TypeTraits.cpp
+ TypeTraits.h
+ unicode/
+0 CollatorDefault.cpp
+ Collator.h
+ glib/
+0 UnicodeGLib.cpp
+ UnicodeGLib.h
+ UnicodeMacrosFromICU.h
+2 icu/
+0 CollatorICU.cpp
+ UnicodeIcu.h
+2 qt4/
+0 UnicodeQt4.h
+2 Unicode.h
+ UTF8.cpp
+ UTF8.h
+ wince/
+0 UnicodeWince.cpp
+ UnicodeWince.h
+3 UnusedParam.h
+ Vector.h
+ VectorTraits.h
+ VMTags.h
+ wince/
+0 FastMallocWince.h
+ MemoryManager.cpp
+ MemoryManager.h
+ mt19937ar.c
+3 yarr/
+0 RegexCompiler.cpp
+ RegexCompiler.h
+ RegexInterpreter.cpp
+ RegexInterpreter.h
+ RegexJIT.cpp
+ RegexJIT.h
+ RegexParser.h
+ RegexPattern.h
+3 VERSION
+ WebKit.pri
+2 libjpeg/
+0 change.log
+ coderules.doc
+ filelist.doc
+ install.doc
+ jcapimin.c
+ jcapistd.c
+ jccoefct.c
+ jccolor.c
+ jcdctmgr.c
+ jchuff.c
+ jchuff.h
+ jcinit.c
+ jcmainct.c
+ jcmarker.c
+ jcmaster.c
+ jcomapi.c
+ jconfig.bcc
+ jconfig.cfg
+ jconfig.dj
+ jconfig.doc
+ jconfig.h
+ jconfig.mac
+ jconfig.manx
+ jconfig.mc6
+ jconfig.sas
+ jconfig.st
+ jconfig.vc
+ jconfig.vms
+ jconfig.wat
+ jcparam.c
+ jcphuff.c
+ jcprepct.c
+ jcsample.c
+ jctrans.c
+ jdapimin.c
+ jdapistd.c
+ jdatadst.c
+ jdatasrc.c
+ jdcoefct.c
+ jdcolor.c
+ jdct.h
+ jddctmgr.c
+ jdhuff.c
+ jdhuff.h
+ jdinput.c
+ jdmainct.c
+ jdmarker.c
+ jdmaster.c
+ jdmerge.c
+ jdphuff.c
+ jdpostct.c
+ jdsample.c
+ jdtrans.c
+ jerror.c
+ jerror.h
+ jfdctflt.c
+ jfdctfst.c
+ jfdctint.c
+ jidctflt.c
+ jidctfst.c
+ jidctint.c
+ jidctred.c
+ jinclude.h
+ jmemmgr.c
+ jmemnobs.c
+ jmemsys.h
+ jmorecfg.h
+ jpegint.h
+ jpeglib.h
+ jquant1.c
+ jquant2.c
+ jutils.c
+ jversion.h
+ libjpeg.doc
+ makefile.ansi
+ makefile.bcc
+ makefile.cfg
+ makefile.dj
+ makefile.manx
+ makefile.mc6
+ makefile.mms
+ makefile.sas
+ makefile.unix
+ makefile.vc
+ makefile.vms
+ makefile.wat
+ README
+ structure.doc
+ usage.doc
+ wizard.doc
+2 libmng/
+0 CHANGES
+ doc/
+0 doc.readme
+ libmng.txt
+ man/
+0 jng.5
+ libmng.3
+ mng.5
+2 misc/
+0 magic.dif
+2 Plan1.png
+ Plan2.png
+ rpm/
+0 libmng-1.0.10-rhconf.patch
+ libmng.spec
+3 libmng_callback_xs.c
+ libmng_chunk_descr.c
+ libmng_chunk_descr.h
+ libmng_chunk_io.c
+ libmng_chunk_io.h
+ libmng_chunk_prc.c
+ libmng_chunk_prc.h
+ libmng_chunks.h
+ libmng_chunk_xs.c
+ libmng_cms.c
+ libmng_cms.h
+ libmng_conf.h
+ libmng_data.h
+ libmng_display.c
+ libmng_display.h
+ libmng_dither.c
+ libmng_dither.h
+ libmng_error.c
+ libmng_error.h
+ libmng_filter.c
+ libmng_filter.h
+ libmng.h
+ libmng_hlapi.c
+ libmng_jpeg.c
+ libmng_jpeg.h
+ libmng_memory.h
+ libmng_object_prc.c
+ libmng_object_prc.h
+ libmng_objects.h
+ libmng_pixels.c
+ libmng_pixels.h
+ libmng_prop_xs.c
+ libmng_read.c
+ libmng_read.h
+ libmng_trace.c
+ libmng_trace.h
+ libmng_types.h
+ libmng_write.c
+ libmng_write.h
+ libmng_zlib.c
+ libmng_zlib.h
+ LICENSE
+ makefiles/
+0 configure.in
+ Makefile.am
+ makefile.bcb3
+ makefile.dj
+ makefile.linux
+ makefile.mingw
+0 dll
+2 makefile.qnx
+ makefile.unix
+ makefile.vcwin32
+ README
+2 README
+0 .autoconf
+ .config
+ .contrib
+ .dll
+ .examples
+ .footprint
+ .packaging
+2 unmaintained/
+0 autogen.sh
+3 libpng/
+0 ANNOUNCE
+ CHANGES
+ configure
+ example.c
+ INSTALL
+ KNOWNBUG
+ libpng-1.2.40.txt
+ libpng.3
+ libpngpf.3
+ LICENSE
+ png.5
+ pngbar.jpg
+ pngbar.png
+ png.c
+ pngconf.h
+ pngerror.c
+ pnggccrd.c
+ pngget.c
+ png.h
+ pngmem.c
+ pngnow.png
+ pngpread.c
+ pngread.c
+ pngrio.c
+ pngrtran.c
+ pngrutil.c
+ pngset.c
+ pngtest.c
+ pngtest.png
+ pngtrans.c
+ pngvcrd.c
+ pngwio.c
+ pngwrite.c
+ pngwtran.c
+ pngwutil.c
+ projects/
+0 beos/
+0 x86-shared.proj
+ x86-shared.txt
+ x86-static.proj
+ x86-static.txt
+2 cbuilder5/
+0 libpng.bpf
+ libpng.bpg
+ libpng.bpr
+ libpng.cpp
+ libpng.readme.txt
+ libpngstat.bpf
+ libpngstat.bpr
+ zlib.readme.txt
+2 netware.txt
+ visualc6/
+0 libpng.dsp
+ libpng.dsw
+ pngtest.dsp
+ README.txt
+2 visualc71/
+0 libpng.sln
+ libpng.vcproj
+ pngtest.vcproj
+ PRJ0041.mak
+ README.txt
+ README_zlib.txt
+ zlib.vcproj
+2 wince.txt
+2 README
+ scripts/
+0 CMakeLists.txt
+ descrip.mms
+ libpng-config-body.in
+ libpng-config-head.in
+ libpng-config.in
+ libpng.icc
+ libpng.pc-configure.in
+ libpng.pc.in
+ makefile.32sunu
+ makefile.64sunu
+ makefile.acorn
+ makefile.aix
+ makefile.amiga
+ makefile.atari
+ makefile.bc32
+ makefile.beos
+ makefile.bor
+ makefile.cygwin
+ makefile.darwin
+ makefile.dec
+ makefile.dj2
+ makefile.elf
+ makefile.freebsd
+ makefile.gcc
+ makefile.gcmmx
+ makefile.hp64
+ makefile.hpgcc
+ makefile.hpux
+ makefile.ibmc
+ makefile.intel
+ makefile.knr
+ makefile.linux
+ makefile.mingw
+ makefile.mips
+ makefile.msc
+ makefile.ne12bsd
+ makefile.netbsd
+ makefile.nommx
+ makefile.openbsd
+ makefile.os2
+ makefile.sco
+ makefile.sggcc
+ makefile.sgi
+ makefile.so9
+ makefile.solaris
+0 -x86
+2 makefile.std
+ makefile.sunos
+ makefile.tc3
+ makefile.vcawin32
+ makefile.vcwin32
+ makefile.watcom
+ makevms.com
+ pngos2.def
+ pngw32.def
+ pngw32.rc
+ SCOPTIONS.ppc
+ smakefile.ppc
+2 TODO
+ Y2KINFO
+2 libtiff/
+0 aclocal.m4
+ autogen.sh
+ ChangeLog
+ config/
+0 compile
+ config.guess
+ config.sub
+ depcomp
+ install-sh
+ ltmain.sh
+ missing
+ mkinstalldirs
+2 configure
+0 .ac
+2 COPYRIGHT
+ HOWTO-RELEASE
+ html/
+0 addingtags.html
+ bugs.html
+ build.html
+ contrib.html
+ document.html
+ images/
+0 back.gif
+ bali.jpg
+ cat.gif
+ cover.jpg
+ cramps.gif
+ dave.gif
+2 images.html
+ images/info.gif
+ images/jello.jpg
+ images/jim.gif
+ images/Makefile.am
+ images/Makefile.in
+ images/note.gif
+ images/oxford.gif
+ images/quad.jpg
+ images/ring.gif
+ images/smallliz.jpg
+ images/strike.gif
+ images/warning.gif
+ index.html
+ internals.html
+ intro.html
+ libtiff.html
+ Makefile.am
+ Makefile.in
+ man/
+0 fax2ps.1.html
+ fax2tiff.1.html
+ gif2tiff.1.html
+ index.html
+ libtiff.3tiff.html
+ Makefile.am
+ Makefile.in
+ pal2rgb.1.html
+ ppm2tiff.1.html
+ ras2tiff.1.html
+ raw2tiff.1.html
+ rgb2ycbcr.1.html
+ sgi2tiff.1.html
+ thumbnail.1.html
+ tiff2bw.1.html
+ tiff2pdf.1.html
+ tiff2ps.1.html
+ tiff2rgba.1.html
+ TIFFbuffer.3tiff.html
+ TIFFClose.3tiff.html
+ tiffcmp.1.html
+ TIFFcodec.3tiff.html
+ TIFFcolor.3tiff.html
+ tiffcp.1.html
+ TIFFDataWidth.3tiff.html
+ tiffdither.1.html
+ tiffdump.1.html
+ TIFFError.3tiff.html
+ TIFFFlush.3tiff.html
+ TIFFGetField.3tiff.html
+ tiffgt.1.html
+ tiffinfo.1.html
+ tiffmedian.1.html
+ TIFFmemory.3tiff.html
+ TIFFOpen.3tiff.html
+ TIFFPrintDirectory.3tiff.html
+ TIFFquery.3tiff.html
+ TIFFReadDirectory.3tiff.html
+ TIFFReadEncodedStrip.3tiff.html
+ TIFFReadEncodedTile.3tiff.html
+ TIFFReadRawStrip.3tiff.html
+ TIFFReadRawTile.3tiff.html
+ TIFFReadRGBAImage.3tiff.html
+ TIFFReadRGBAStrip.3tiff.html
+ TIFFReadRGBATile.3tiff.html
+ TIFFReadScanline.3tiff.html
+ TIFFReadTile.3tiff.html
+ TIFFRGBAImage.3tiff.html
+ tiffset.1.html
+ TIFFSetDirectory.3tiff.html
+ TIFFSetField.3tiff.html
+ TIFFsize.3tiff.html
+ tiffsplit.1.html
+ TIFFstrip.3tiff.html
+ tiffsv.1.html
+ TIFFswab.3tiff.html
+ TIFFtile.3tiff.html
+ TIFFWarning.3tiff.html
+ TIFFWriteDirectory.3tiff.html
+ TIFFWriteEncodedStrip.3tiff.html
+ TIFFWriteEncodedTile.3tiff.html
+ TIFFWriteRawStrip.3tiff.html
+ TIFFWriteRawTile.3tiff.html
+ TIFFWriteScanline.3tiff.html
+ TIFFWriteTile.3tiff.html
+2 misc.html
+ support.html
+ TIFFTechNote2.html
+ tools.html
+ v3.4beta007.html
+ v3.4beta016.html
+ v3.4beta018.html
+ v3.4beta024.html
+ v3.4beta028.html
+ v3.4beta029.html
+ v3.4beta031.html
+ v3.4beta032.html
+ v3.4beta033.html
+ v3.4beta034.html
+ v3.4beta035.html
+ v3.4beta036.html
+ v3.5.1.html
+ v3.5.2.html
+ v3.5.3.html
+ v3.5.4.html
+ v3.5.5.html
+ v3.5.6-beta.html
+ v3.5.7.html
+ v3.6.0.html
+ v3.6.1.html
+ v3.7.0alpha.html
+ v3.7.0beta2.html
+ v3.7.0beta.html
+ v3.7.0.html
+ v3.7.1.html
+ v3.7.2.html
+ v3.7.3.html
+ v3.7.4.html
+ v3.8.0.html
+ v3.8.1.html
+ v3.8.2.html
+2 libtiff/
+0 libtiff.def
+ Makefile.am
+ Makefile.in
+ Makefile.vc
+ mkg3states.c
+ SConstruct
+ t4.h
+ tif_acorn.c
+ tif_apple.c
+ tif_atari.c
+ tif_aux.c
+ tif_close.c
+ tif_codec.c
+ tif_color.c
+ tif_compress.c
+ tif_config.h
+0 .in
+ .vc
+2 tif_dir.c
+ tif_dir.h
+ tif_dirinfo.c
+ tif_dirread.c
+ tif_dirwrite.c
+ tif_dumpmode.c
+ tif_error.c
+ tif_extension.c
+ tif_fax3.c
+ tif_fax3.h
+ tif_fax3sm.c
+ tiffconf.h
+0 .in
+ .vc
+2 tiff.h
+ tiffio.h
+0 xx
+2 tiffiop.h
+ tif_flush.c
+ tiffvers.h
+ tif_getimage.c
+ tif_jpeg.c
+ tif_luv.c
+ tif_lzw.c
+ tif_msdos.c
+ tif_next.c
+ tif_ojpeg.c
+ tif_open.c
+ tif_packbits.c
+ tif_pixarlog.c
+ tif_predict.c
+ tif_predict.h
+ tif_print.c
+ tif_read.c
+ tif_stream.cxx
+ tif_strip.c
+ tif_swab.c
+ tif_thunder.c
+ tif_tile.c
+ tif_unix.c
+ tif_version.c
+ tif_warning.c
+ tif_win32.c
+ tif_win3.c
+ tif_write.c
+ tif_zip.c
+ uvcode.h
+2 m4/
+0 acinclude.m4
+ libtool.m4
+ ltoptions.m4
+ ltsugar.m4
+ ltversion.m4
+2 Makefile.am
+ Makefile.in
+ Makefile.vc
+ nmake.opt
+ port/
+0 dummy.c
+ getopt.c
+ lfind.c
+ Makefile.am
+ Makefile.in
+ Makefile.vc
+ strcasecmp.c
+ strtoul.c
+2 README
+ RELEASE-DATE
+ SConstruct
+ test/
+0 ascii_tag.c
+ check_tag.c
+ long_tag.c
+ Makefile.am
+ Makefile.in
+ short_tag.c
+ strip.c
+ strip_rw.c
+ test_arrays.c
+ test_arrays.h
+2 TODO
+ VERSION
+2 Makefile
+ md4/
+0 md4.cpp
+ md4.h
+2 md5/
+0 md5.cpp
+ md5.h
+2 patches/
+0 freetype-2.3.5-config.patch
+ freetype-2.3.6-ascii.patch
+ freetype-2.3.6-vxworks.patch
+ libjpeg-6b-config.patch
+ libjpeg-6b-vxworks.patch
+ libmng-1.0.10-endless-loop.patch
+ libpng-1.2.20-elf-visibility.patch
+ libpng-1.2.20-vxworks.patch
+ libtiff-3.8.2-config.patch
+ libtiff-3.8.2-vxworks.patch
+ sqlite-3.5.6-config.patch
+ sqlite-3.5.6-vxworks.patch
+ sqlite-3.5.6-wince.patch
+ zlib-1.2.3-elf-visibility.patch
+2 phonon/
+0 CMakeLists.txt
+ COPYING.LIB
+ ds9/
+0 abstractvideorenderer.cpp
+ abstractvideorenderer.h
+ audiooutput.cpp
+ audiooutput.h
+ backend.cpp
+ backend.h
+ backendnode.cpp
+ backendnode.h
+ CMakeLists.txt
+ compointer.h
+ ConfigureChecks.cmake
+ ds9.desktop
+ effect.cpp
+ effect.h
+ fakesource.cpp
+ fakesource.h
+ iodevicereader.cpp
+ iodevicereader.h
+ lgpl-2.1.txt
+ lgpl-3.txt
+ mediagraph.cpp
+ mediagraph.h
+ mediaobject.cpp
+ mediaobject.h
+ phononds9_namespace.h
+ qasyncreader.cpp
+ qasyncreader.h
+ qaudiocdreader.cpp
+ qaudiocdreader.h
+ qbasefilter.cpp
+ qbasefilter.h
+ qmeminputpin.cpp
+ qmeminputpin.h
+ qpin.cpp
+ qpin.h
+ videorenderer_soft.cpp
+ videorenderer_soft.h
+ videorenderer_vmr9.cpp
+ videorenderer_vmr9.h
+ videowidget.cpp
+ videowidget.h
+ volumeeffect.cpp
+ volumeeffect.h
+2 gstreamer/
+0 abstractrenderer.cpp
+ abstractrenderer.h
+ alsasink2.c
+ alsasink2.h
+ artssink.cpp
+ artssink.h
+ audioeffect.cpp
+ audioeffect.h
+ audiooutput.cpp
+ audiooutput.h
+ backend.cpp
+ backend.h
+ CMakeLists.txt
+ common.h
+ ConfigureChecks.cmake
+ devicemanager.cpp
+ devicemanager.h
+ effect.cpp
+ effect.h
+ effectmanager.cpp
+ effectmanager.h
+ glrenderer.cpp
+ glrenderer.h
+ gsthelper.cpp
+ gsthelper.h
+ gstreamer.desktop
+ lgpl-2.1.txt
+ lgpl-3.txt
+ medianode.cpp
+ medianodeevent.cpp
+ medianodeevent.h
+ medianode.h
+ mediaobject.cpp
+ mediaobject.h
+ message.cpp
+ message.h
+ Messages.sh
+ phononsrc.cpp
+ phononsrc.h
+ qwidgetvideosink.cpp
+ qwidgetvideosink.h
+ streamreader.cpp
+ streamreader.h
+ videowidget.cpp
+ videowidget.h
+ volumefadereffect.cpp
+ volumefadereffect.h
+ widgetrenderer.cpp
+ widgetrenderer.h
+ x11renderer.cpp
+ x11renderer.h
+2 includes/
+0 CMakeLists.txt
+ Phonon/
+0 AbstractAudioOutput
+ AbstractMediaStream
+ AbstractVideoOutput
+ AddonInterface
+ AudioDevice
+0 Enumerator
+2 AudioOutput
+0 Device
+0 Model
+2 Interface
+2 BackendCapabilities
+ BackendInterface
+ Effect
+0 Description
+0 Model
+2 Interface
+ Parameter
+ Widget
+2 Experimental/
+0 AbstractVideoDataOutput
+ AudioDataOutput
+ SnapshotInterface
+ VideoDataOutput
+0 Interface
+2 VideoFrame
+0 2
+2 Visualization
+2 Global
+ MediaController
+ MediaNode
+ MediaObject
+0 Interface
+2 MediaSource
+ ObjectDescription
+0 Model
+2 Path
+ PlatformPlugin
+ SeekSlider
+ StreamInterface
+ VideoPlayer
+ VideoWidget
+0 Interface
+2 VolumeFaderEffect
+ VolumeFaderInterface
+ VolumeSlider
+3 mmf/
+0 abstractaudioeffect.cpp
+ abstractaudioeffect.h
+ abstractmediaplayer.cpp
+ abstractmediaplayer.h
+ abstractplayer.cpp
+ abstractplayer.h
+ ancestormovemonitor.cpp
+ ancestormovemonitor.h
+ audioequalizer.cpp
+ audioequalizer.h
+ audiooutput.cpp
+ audiooutput.h
+ audioplayer.cpp
+ audioplayer.h
+ backend.cpp
+ backend.h
+ bassboost.cpp
+ bassboost.h
+ defs.h
+ dummyplayer.cpp
+ dummyplayer.h
+ effectfactory.cpp
+ effectfactory.h
+ mediaobject.cpp
+ mediaobject.h
+ mmf_medianode.cpp
+ mmf_medianode.h
+ mmf_videoplayer.cpp
+ mmf_videoplayer.h
+ objectdump.cpp
+ objectdump.h
+ objectdump_symbian.cpp
+ objectdump_symbian.h
+ objecttree.cpp
+ objecttree.h
+ utils.cpp
+ utils.h
+ videooutput.cpp
+ videooutput.h
+ videooutputobserver.h
+ videowidget.cpp
+ videowidget.h
+ volumeobserver.h
+2 phonon/
+0 abstractaudiooutput.cpp
+ abstractaudiooutput.h
+ abstractaudiooutput_p.cpp
+ abstractaudiooutput_p.h
+ abstractmediastream.cpp
+ abstractmediastream.h
+ abstractmediastream_p.h
+ abstractvideooutput.cpp
+ abstractvideooutput.h
+ abstractvideooutput_p.cpp
+ abstractvideooutput_p.h
+ addoninterface.h
+ audiooutputadaptor.cpp
+ audiooutputadaptor_p.h
+ audiooutput.cpp
+ audiooutput.h
+ audiooutputinterface.cpp
+ audiooutputinterface.h
+ audiooutput_p.h
+ backendcapabilities.cpp
+ backendcapabilities.h
+ backendcapabilities_p.h
+ backend.dox
+ backendinterface.h
+ BUGS
+ CMakeLists.txt
+ effect.cpp
+ effect.h
+ effectinterface.h
+ effectparameter.cpp
+ effectparameter.h
+ effectparameter_p.h
+ effect_p.h
+ effectwidget.cpp
+ effectwidget.h
+ effectwidget_p.h
+ extractmethodcalls.rb
+ factory.cpp
+ factory_p.h
+ frontendinterface_p.h
+ globalconfig.cpp
+ globalconfig_p.h
+ globalstatic_p.h
+ IDEAS
+ iodevicestream.cpp
+ iodevicestream_p.h
+ .krazy
+ mediacontroller.cpp
+ mediacontroller.h
+ medianode.cpp
+ medianodedestructionhandler_p.h
+ medianode.h
+ medianode_p.h
+ mediaobject.cpp
+ mediaobject.dox
+ mediaobject.h
+ mediaobjectinterface.h
+ mediaobject_p.h
+ mediasource.cpp
+ mediasource.h
+ mediasource_p.h
+ Messages.sh
+ objectdescription.cpp
+ objectdescription.h
+ objectdescriptionmodel.cpp
+ objectdescriptionmodel.h
+ objectdescriptionmodel_p.h
+ objectdescription_p.h
+ org.kde.Phonon.AudioOutput.xml
+ path.cpp
+ path.h
+ path_p.h
+2 phonon.pc.cmake
+ phonon/phonondefs.h
+ phonon/phonondefs_p.h
+ phonon/phonon_export.h
+ phonon/phononnamespace.cpp
+ phonon/phononnamespace.h
+0 .in
+2 phonon/phononnamespace_p.h
+ phonon/platform.cpp
+ phonon/platform_p.h
+ phonon/platformplugin.h
+ phonon/preprocessandextract.sh
+ phonon/qsettingsgroup_p.h
+ phonon/seekslider.cpp
+ phonon/seekslider.h
+ phonon/seekslider_p.h
+ phonon/streaminterface.cpp
+ phonon/streaminterface.h
+ phonon/streaminterface_p.h
+ phonon/stream-thoughts
+ phonon/TODO
+ phonon/videoplayer.cpp
+ phonon/videoplayer.h
+ phonon/videowidget.cpp
+ phonon/videowidget.h
+ phonon/videowidgetinterface.h
+ phonon/videowidget_p.h
+ phonon/volumefadereffect.cpp
+ phonon/volumefadereffect.h
+ phonon/volumefadereffect_p.h
+ phonon/volumefaderinterface.h
+ phonon/volumeslider.cpp
+ phonon/volumeslider.h
+ phonon/volumeslider_p.h
+ qt7/
+0 audioconnection.h
+ audioconnection.mm
+ audiodevice.h
+ audiodevice.mm
+ audioeffects.h
+ audioeffects.mm
+ audiograph.h
+ audiograph.mm
+ audiomixer.h
+ audiomixer.mm
+ audionode.h
+ audionode.mm
+ audiooutput.h
+ audiooutput.mm
+ audiopartoutput.h
+ audiopartoutput.mm
+ audiosplitter.h
+ audiosplitter.mm
+ backend.h
+ backendheader.h
+ backendheader.mm
+ backendinfo.h
+ backendinfo.mm
+ backend.mm
+ CMakeLists.txt
+ ConfigureChecks.cmake
+ lgpl-2.1.txt
+ lgpl-3.txt
+ medianodeevent.h
+ medianodeevent.mm
+ medianode.h
+ medianode.mm
+ medianodevideopart.h
+ medianodevideopart.mm
+ mediaobjectaudionode.h
+ mediaobjectaudionode.mm
+ mediaobject.h
+ mediaobject.mm
+ quicktimeaudioplayer.h
+ quicktimeaudioplayer.mm
+ quicktimemetadata.h
+ quicktimemetadata.mm
+ quicktimestreamreader.h
+ quicktimestreamreader.mm
+ quicktimevideoplayer.h
+ quicktimevideoplayer.mm
+ videoeffect.h
+ videoeffect.mm
+ videoframe.h
+ videoframe.mm
+ videowidget.h
+ videowidget.mm
+2 waveout/
+0 audiooutput.cpp
+ audiooutput.h
+ backend.cpp
+ backend.h
+ mediaobject.cpp
+ mediaobject.h
+3 powervr/
+0 pvr2d.h
+ wsegl.h
+2 ptmalloc/
+0 ChangeLog
+ COPYRIGHT
+ lran2.h
+ Makefile
+ malloc-2.8.3.h
+ malloc.c
+ malloc-private.h
+ ptmalloc3.c
+ README
+ sysdeps/
+0 generic/
+0 atomic.h
+ malloc-machine.h
+ thread-st.h
+2 pthread/
+0 malloc-machine.h
+ thread-st.h
+2 solaris/
+0 malloc-machine.h
+ thread-st.h
+2 sproc/
+0 malloc-machine.h
+ thread-st.h
+4 README
+ sha1/
+0 sha1.cpp
+2 sqlite/
+0 shell.c
+ sqlite3.c
+ sqlite3.h
+2 webkit/
+0 ChangeLog
+ .gitignore
+ JavaScriptCore/
+0 API/
+0 APICast.h
+ JavaScriptCore.h
+ JavaScript.h
+ JSBase.cpp
+ JSBase.h
+ JSBasePrivate.h
+ JSCallbackConstructor.cpp
+ JSCallbackConstructor.h
+ JSCallbackFunction.cpp
+ JSCallbackFunction.h
+ JSCallbackObject.cpp
+ JSCallbackObjectFunctions.h
+ JSCallbackObject.h
+ JSClassRef.cpp
+ JSClassRef.h
+ JSContextRef.cpp
+ JSContextRef.h
+ JSContextRefPrivate.h
+ JSObjectRef.cpp
+ JSObjectRef.h
+ JSProfilerPrivate.cpp
+ JSProfilerPrivate.h
+ JSRetainPtr.h
+ JSStringRefBSTR.cpp
+ JSStringRefBSTR.h
+ JSStringRefCF.cpp
+ JSStringRefCF.h
+ JSStringRef.cpp
+ JSStringRef.h
+ JSValueRef.cpp
+ JSValueRef.h
+ OpaqueJSString.cpp
+ OpaqueJSString.h
+ WebKitAvailability.h
+2 assembler/
+0 AbstractMacroAssembler.h
+ ARMAssembler.cpp
+ ARMAssembler.h
+ ARMv7Assembler.h
+ AssemblerBuffer.h
+ AssemblerBufferWithConstantPool.h
+ CodeLocation.h
+ LinkBuffer.h
+ MacroAssemblerARM.cpp
+ MacroAssemblerARM.h
+ MacroAssemblerARMv7.h
+ MacroAssemblerCodeRef.h
+ MacroAssembler.h
+ MacroAssemblerX86_64.h
+ MacroAssemblerX86Common.h
+ MacroAssemblerX86.h
+ RepatchBuffer.h
+ X86Assembler.h
+2 AUTHORS
+ bytecode/
+0 CodeBlock.cpp
+ CodeBlock.h
+ EvalCodeCache.h
+ Instruction.h
+ JumpTable.cpp
+ JumpTable.h
+ Opcode.cpp
+ Opcode.h
+ SamplingTool.cpp
+ SamplingTool.h
+ StructureStubInfo.cpp
+ StructureStubInfo.h
+2 bytecompiler/
+0 BytecodeGenerator.cpp
+ BytecodeGenerator.h
+ Label.h
+ LabelScope.h
+ RegisterID.h
+2 ChangeLog
+0 -2002-12-03
+ -2003-10-25
+ -2007-10-14
+ -2008-08-10
+ -2009-06-16
+2 config.h
+ COPYING.LIB
+ create_hash_table
+ debugger/
+0 DebuggerActivation.cpp
+ DebuggerActivation.h
+ DebuggerCallFrame.cpp
+ DebuggerCallFrame.h
+ Debugger.cpp
+ Debugger.h
+2 DerivedSources.make
+ docs/
+0 make-bytecode-docs.pl
+2 ForwardingHeaders/
+0 JavaScriptCore/
+0 APICast.h
+ JavaScriptCore.h
+ JavaScript.h
+ JSBase.h
+ JSContextRef.h
+ JSObjectRef.h
+ JSRetainPtr.h
+ JSStringRefCF.h
+ JSStringRef.h
+ JSValueRef.h
+ OpaqueJSString.h
+ WebKitAvailability.h
+3 generated/
+0 ArrayPrototype.lut.h
+ chartables.c
+ DatePrototype.lut.h
+ Grammar.cpp
+ Grammar.h
+ JSONObject.lut.h
+ Lexer.lut.h
+ MathObject.lut.h
+ NumberConstructor.lut.h
+ RegExpConstructor.lut.h
+ RegExpObject.lut.h
+ StringPrototype.lut.h
+2 headers.pri
+ Info.plist
+ interpreter/
+0 CachedCall.h
+ CallFrameClosure.h
+ CallFrame.cpp
+ CallFrame.h
+ Interpreter.cpp
+ Interpreter.h
+ RegisterFile.cpp
+ RegisterFile.h
+ Register.h
+2 JavaScriptCore.gypi
+ JavaScriptCore.order
+ JavaScriptCorePrefix.h
+ JavaScriptCore.pri
+ JavaScriptCore.pro
+ jit/
+0 ExecutableAllocator.cpp
+ ExecutableAllocatorFixedVMPool.cpp
+ ExecutableAllocator.h
+ ExecutableAllocatorPosix.cpp
+ ExecutableAllocatorSymbian.cpp
+ ExecutableAllocatorWin.cpp
+ JITArithmetic.cpp
+ JITCall.cpp
+ JITCode.h
+ JIT.cpp
+ JIT.h
+ JITInlineMethods.h
+ JITOpcodes.cpp
+ JITPropertyAccess.cpp
+ JITStubCall.h
+ JITStubs.cpp
+ JITStubs.h
+2 jsc.cpp
+ make-generated-sources.sh
+ os-win32/
+0 stdbool.h
+ stdint.h
+2 parser/
+0 Grammar.y
+ Keywords.table
+ Lexer.cpp
+ Lexer.h
+ NodeConstructors.h
+ NodeInfo.h
+ Nodes.cpp
+ Nodes.h
+ ParserArena.cpp
+ ParserArena.h
+ Parser.cpp
+ Parser.h
+ ResultType.h
+ SourceCode.h
+ SourceProvider.h
+2 pcre/
+0 AUTHORS
+ COPYING
+ dftables
+ pcre_compile.cpp
+ pcre_exec.cpp
+ pcre.h
+ pcre_internal.h
+ pcre.pri
+ pcre_tables.cpp
+ pcre_ucp_searchfuncs.cpp
+ pcre_xclass.cpp
+ ucpinternal.h
+ ucptable.cpp
+2 profiler/
+0 CallIdentifier.h
+ HeavyProfile.cpp
+ HeavyProfile.h
+ Profile.cpp
+ ProfileGenerator.cpp
+ ProfileGenerator.h
+ Profile.h
+ ProfileNode.cpp
+ ProfileNode.h
+ Profiler.cpp
+ Profiler.h
+ ProfilerServer.h
+ ProfilerServer.mm
+ TreeProfile.cpp
+ TreeProfile.h
+2 runtime/
+0 ArgList.cpp
+ ArgList.h
+ Arguments.cpp
+ Arguments.h
+ ArrayConstructor.cpp
+ ArrayConstructor.h
+ ArrayPrototype.cpp
+ ArrayPrototype.h
+ BatchedTransitionOptimizer.h
+ BooleanConstructor.cpp
+ BooleanConstructor.h
+ BooleanObject.cpp
+ BooleanObject.h
+ BooleanPrototype.cpp
+ BooleanPrototype.h
+ CallData.cpp
+ CallData.h
+ ClassInfo.h
+ Collector.cpp
+ Collector.h
+ CollectorHeapIterator.h
+ CommonIdentifiers.cpp
+ CommonIdentifiers.h
+ Completion.cpp
+ Completion.h
+ ConstructData.cpp
+ ConstructData.h
+ DateConstructor.cpp
+ DateConstructor.h
+ DateConversion.cpp
+ DateConversion.h
+ DateInstanceCache.h
+ DateInstance.cpp
+ DateInstance.h
+ DatePrototype.cpp
+ DatePrototype.h
+ ErrorConstructor.cpp
+ ErrorConstructor.h
+ Error.cpp
+ Error.h
+ ErrorInstance.cpp
+ ErrorInstance.h
+ ErrorPrototype.cpp
+ ErrorPrototype.h
+ ExceptionHelpers.cpp
+ ExceptionHelpers.h
+ Executable.cpp
+ Executable.h
+ FunctionConstructor.cpp
+ FunctionConstructor.h
+ FunctionPrototype.cpp
+ FunctionPrototype.h
+ GetterSetter.cpp
+ GetterSetter.h
+ GlobalEvalFunction.cpp
+ GlobalEvalFunction.h
+ Identifier.cpp
+ Identifier.h
+ InitializeThreading.cpp
+ InitializeThreading.h
+ InternalFunction.cpp
+ InternalFunction.h
+ JSActivation.cpp
+ JSActivation.h
+ JSAPIValueWrapper.cpp
+ JSAPIValueWrapper.h
+ JSArray.cpp
+ JSArray.h
+ JSByteArray.cpp
+ JSByteArray.h
+ JSCell.cpp
+ JSCell.h
+ JSFunction.cpp
+ JSFunction.h
+ JSGlobalData.cpp
+ JSGlobalData.h
+ JSGlobalObject.cpp
+ JSGlobalObjectFunctions.cpp
+ JSGlobalObjectFunctions.h
+ JSGlobalObject.h
+ JSImmediate.cpp
+ JSImmediate.h
+ JSLock.cpp
+ JSLock.h
+ JSNotAnObject.cpp
+ JSNotAnObject.h
+ JSNumberCell.cpp
+ JSNumberCell.h
+ JSObject.cpp
+ JSObject.h
+ JSONObject.cpp
+ JSONObject.h
+ JSPropertyNameIterator.cpp
+ JSPropertyNameIterator.h
+ JSStaticScopeObject.cpp
+ JSStaticScopeObject.h
+ JSString.cpp
+ JSString.h
+ JSType.h
+ JSTypeInfo.h
+ JSValue.cpp
+ JSValue.h
+ JSVariableObject.cpp
+ JSVariableObject.h
+ JSWrapperObject.cpp
+ JSWrapperObject.h
+ LiteralParser.cpp
+ LiteralParser.h
+ Lookup.cpp
+ Lookup.h
+ MarkStack.cpp
+ MarkStack.h
+ MarkStackPosix.cpp
+ MarkStackSymbian.cpp
+ MarkStackWin.cpp
+ MathObject.cpp
+ MathObject.h
+ NativeErrorConstructor.cpp
+ NativeErrorConstructor.h
+ NativeErrorPrototype.cpp
+ NativeErrorPrototype.h
+ NativeFunctionWrapper.h
+ NumberConstructor.cpp
+ NumberConstructor.h
+ NumberObject.cpp
+ NumberObject.h
+ NumberPrototype.cpp
+ NumberPrototype.h
+ NumericStrings.h
+ ObjectConstructor.cpp
+ ObjectConstructor.h
+ ObjectPrototype.cpp
+ ObjectPrototype.h
+ Operations.cpp
+ Operations.h
+ PropertyDescriptor.cpp
+ PropertyDescriptor.h
+ PropertyMapHashTable.h
+ PropertyNameArray.cpp
+ PropertyNameArray.h
+ PropertySlot.cpp
+ PropertySlot.h
+ Protect.h
+ PrototypeFunction.cpp
+ PrototypeFunction.h
+ PutPropertySlot.h
+ RegExpConstructor.cpp
+ RegExpConstructor.h
+ RegExp.cpp
+ RegExp.h
+ RegExpMatchesArray.h
+ RegExpObject.cpp
+ RegExpObject.h
+ RegExpPrototype.cpp
+ RegExpPrototype.h
+ ScopeChain.cpp
+ ScopeChain.h
+ ScopeChainMark.h
+ SmallStrings.cpp
+ SmallStrings.h
+ StringConstructor.cpp
+ StringConstructor.h
+ StringObject.cpp
+ StringObject.h
+ StringObjectThatMasqueradesAsUndefined.h
+ StringPrototype.cpp
+ StringPrototype.h
+ StructureChain.cpp
+ StructureChain.h
+ Structure.cpp
+ Structure.h
+ StructureTransitionTable.h
+ SymbolTable.h
+ TimeoutChecker.cpp
+ TimeoutChecker.h
+ Tracing.h
+ UString.cpp
+ UString.h
+2 THANKS
+ wrec/
+0 CharacterClassConstructor.cpp
+ CharacterClassConstructor.h
+ CharacterClass.cpp
+ CharacterClass.h
+ Escapes.h
+ Quantifier.h
+ WREC.cpp
+ WRECFunctors.cpp
+ WRECFunctors.h
+ WRECGenerator.cpp
+ WRECGenerator.h
+ WREC.h
+ WRECParser.cpp
+ WRECParser.h
+2 wscript
+ wtf/
+0 AlwaysInline.h
+ ASCIICType.h
+ Assertions.cpp
+ Assertions.h
+ AVLTree.h
+ ByteArray.cpp
+ ByteArray.h
+ CONTRIBUTORS.pthreads-win32
+ CrossThreadRefCounted.h
+ CurrentTime.cpp
+ CurrentTime.h
+ DateMath.cpp
+ DateMath.h
+ Deque.h
+ DisallowCType.h
+ dtoa.cpp
+ dtoa.h
+ FastAllocBase.h
+ FastMalloc.cpp
+ FastMalloc.h
+ Forward.h
+ GetPtr.h
+ GOwnPtr.cpp
+ GOwnPtr.h
+ HashCountedSet.h
+ HashFunctions.h
+ HashIterators.h
+ HashMap.h
+ HashSet.h
+ HashTable.cpp
+ HashTable.h
+ HashTraits.h
+ ListHashSet.h
+ ListRefPtr.h
+ Locker.h
+ MainThread.cpp
+ MainThread.h
+ MallocZoneSupport.h
+ MathExtras.h
+ MessageQueue.h
+ Noncopyable.h
+ NotFound.h
+ OwnArrayPtr.h
+ OwnFastMallocPtr.h
+ OwnPtrCommon.h
+ OwnPtr.h
+ OwnPtrWin.cpp
+ PassOwnPtr.h
+ PassRefPtr.h
+ Platform.h
+ PossiblyNull.h
+ PtrAndFlags.h
+ qt/
+0 MainThreadQt.cpp
+ ThreadingQt.cpp
+2 RandomNumber.cpp
+ RandomNumber.h
+ RandomNumberSeed.h
+ RefCounted.h
+ RefCountedLeakCounter.cpp
+ RefCountedLeakCounter.h
+ RefPtr.h
+ RefPtrHashMap.h
+ RetainPtr.h
+ SegmentedVector.h
+ StdLibExtras.h
+ StringExtras.h
+ TCPackedCache.h
+ TCPageMap.h
+ TCSpinLock.h
+ TCSystemAlloc.cpp
+ TCSystemAlloc.h
+ Threading.cpp
+ Threading.h
+ ThreadingNone.cpp
+ ThreadingPthreads.cpp
+ ThreadingWin.cpp
+ ThreadSpecific.h
+ ThreadSpecificWin.cpp
+ TypeTraits.cpp
+ TypeTraits.h
+ unicode/
+0 CollatorDefault.cpp
+ Collator.h
+ glib/
+0 UnicodeGLib.cpp
+ UnicodeGLib.h
+ UnicodeMacrosFromICU.h
+2 icu/
+0 CollatorICU.cpp
+ UnicodeIcu.h
+2 qt4/
+0 UnicodeQt4.h
+2 Unicode.h
+ UTF8.cpp
+ UTF8.h
+ wince/
+0 UnicodeWince.cpp
+ UnicodeWince.h
+3 UnusedParam.h
+ Vector.h
+ VectorTraits.h
+ VMTags.h
+ wince/
+0 FastMallocWince.h
+ MemoryManager.cpp
+ MemoryManager.h
+ mt19937ar.c
+3 yarr/
+0 RegexCompiler.cpp
+ RegexCompiler.h
+ RegexInterpreter.cpp
+ RegexInterpreter.h
+ RegexJIT.cpp
+ RegexJIT.h
+ RegexParser.h
+ RegexPattern.h
+3 VERSION
+ WebCore/
+0 accessibility/
+0 AccessibilityAllInOne.cpp
+ AccessibilityARIAGridCell.cpp
+ AccessibilityARIAGridCell.h
+ AccessibilityARIAGrid.cpp
+ AccessibilityARIAGrid.h
+ AccessibilityARIAGridRow.cpp
+ AccessibilityARIAGridRow.h
+ AccessibilityImageMapLink.cpp
+ AccessibilityImageMapLink.h
+ AccessibilityListBox.cpp
+ AccessibilityListBox.h
+ AccessibilityListBoxOption.cpp
+ AccessibilityListBoxOption.h
+ AccessibilityList.cpp
+ AccessibilityList.h
+ AccessibilityMediaControls.cpp
+ AccessibilityMediaControls.h
+ AccessibilityObject.cpp
+ AccessibilityObject.h
+ AccessibilityRenderObject.cpp
+ AccessibilityRenderObject.h
+ AccessibilitySlider.cpp
+ AccessibilitySlider.h
+ AccessibilityTableCell.cpp
+ AccessibilityTableCell.h
+ AccessibilityTableColumn.cpp
+ AccessibilityTableColumn.h
+ AccessibilityTable.cpp
+ AccessibilityTable.h
+ AccessibilityTableHeaderContainer.cpp
+ AccessibilityTableHeaderContainer.h
+ AccessibilityTableRow.cpp
+ AccessibilityTableRow.h
+ AXObjectCache.cpp
+ AXObjectCache.h
+ qt/
+0 AccessibilityObjectQt.cpp
+3 bindings/
+0 js/
+0 CachedScriptSourceProvider.h
+ DOMObjectWithSVGContext.h
+ GCController.cpp
+ GCController.h
+ JSAbstractWorkerCustom.cpp
+ JSAttrCustom.cpp
+ JSAudioConstructor.cpp
+ JSAudioConstructor.h
+ JSBindingsAllInOne.cpp
+ JSCallbackData.cpp
+ JSCallbackData.h
+ JSCanvasArrayBufferConstructor.cpp
+ JSCanvasArrayBufferConstructor.h
+ JSCanvasArrayCustom.cpp
+ JSCanvasByteArrayConstructor.cpp
+ JSCanvasByteArrayConstructor.h
+ JSCanvasByteArrayCustom.cpp
+ JSCanvasFloatArrayConstructor.cpp
+ JSCanvasFloatArrayConstructor.h
+ JSCanvasFloatArrayCustom.cpp
+ JSCanvasIntArrayConstructor.cpp
+ JSCanvasIntArrayConstructor.h
+ JSCanvasIntArrayCustom.cpp
+ JSCanvasNumberArrayCustom.cpp
+ JSCanvasRenderingContext2DCustom.cpp
+ JSCanvasRenderingContext3DCustom.cpp
+ JSCanvasRenderingContextCustom.cpp
+ JSCanvasShortArrayConstructor.cpp
+ JSCanvasShortArrayConstructor.h
+ JSCanvasShortArrayCustom.cpp
+ JSCanvasUnsignedByteArrayConstructor.cpp
+ JSCanvasUnsignedByteArrayConstructor.h
+ JSCanvasUnsignedByteArrayCustom.cpp
+ JSCanvasUnsignedIntArrayConstructor.cpp
+ JSCanvasUnsignedIntArrayConstructor.h
+ JSCanvasUnsignedIntArrayCustom.cpp
+ JSCanvasUnsignedShortArrayConstructor.cpp
+ JSCanvasUnsignedShortArrayConstructor.h
+ JSCanvasUnsignedShortArrayCustom.cpp
+ JSCDATASectionCustom.cpp
+ JSClipboardCustom.cpp
+ JSConsoleCustom.cpp
+ JSCoordinatesCustom.cpp
+ JSCSSRuleCustom.cpp
+ JSCSSRuleListCustom.cpp
+ JSCSSStyleDeclarationCustom.cpp
+ JSCSSStyleDeclarationCustom.h
+ JSCSSValueCustom.cpp
+ JSCustomPositionCallback.cpp
+ JSCustomPositionCallback.h
+ JSCustomPositionErrorCallback.cpp
+ JSCustomPositionErrorCallback.h
+ JSCustomSQLStatementCallback.cpp
+ JSCustomSQLStatementCallback.h
+ JSCustomSQLStatementErrorCallback.cpp
+ JSCustomSQLStatementErrorCallback.h
+ JSCustomSQLTransactionCallback.cpp
+ JSCustomSQLTransactionCallback.h
+ JSCustomSQLTransactionErrorCallback.cpp
+ JSCustomSQLTransactionErrorCallback.h
+ JSCustomVoidCallback.cpp
+ JSCustomVoidCallback.h
+ JSCustomXPathNSResolver.cpp
+ JSCustomXPathNSResolver.h
+ JSDatabaseCustom.cpp
+ JSDataGridColumnListCustom.cpp
+ JSDataGridDataSource.cpp
+ JSDataGridDataSource.h
+ JSDedicatedWorkerContextCustom.cpp
+ JSDesktopNotificationsCustom.cpp
+ JSDocumentCustom.cpp
+ JSDocumentFragmentCustom.cpp
+ JSDOMApplicationCacheCustom.cpp
+ JSDOMBinding.cpp
+ JSDOMBinding.h
+ JSDOMGlobalObject.cpp
+ JSDOMGlobalObject.h
+ JSDOMWindowBase.cpp
+ JSDOMWindowBase.h
+ JSDOMWindowCustom.cpp
+ JSDOMWindowCustom.h
+ JSDOMWindowShell.cpp
+ JSDOMWindowShell.h
+ JSElementCustom.cpp
+ JSEventCustom.cpp
+ JSEventListener.cpp
+ JSEventListener.h
+ JSEventSourceConstructor.cpp
+ JSEventSourceConstructor.h
+ JSEventSourceCustom.cpp
+ JSEventTarget.cpp
+ JSEventTarget.h
+ JSExceptionBase.cpp
+ JSExceptionBase.h
+ JSGeolocationCustom.cpp
+ JSHistoryCustom.cpp
+ JSHistoryCustom.h
+ JSHTMLAllCollectionCustom.cpp
+ JSHTMLAppletElementCustom.cpp
+ JSHTMLAppletElementCustom.h
+ JSHTMLCanvasElementCustom.cpp
+ JSHTMLCollectionCustom.cpp
+ JSHTMLDataGridElementCustom.cpp
+ JSHTMLDocumentCustom.cpp
+ JSHTMLElementCustom.cpp
+ JSHTMLEmbedElementCustom.cpp
+ JSHTMLEmbedElementCustom.h
+ JSHTMLFormElementCustom.cpp
+ JSHTMLFrameElementCustom.cpp
+ JSHTMLFrameSetElementCustom.cpp
+ JSHTMLIFrameElementCustom.cpp
+ JSHTMLInputElementCustom.cpp
+ JSHTMLInputElementCustom.h
+ JSHTMLObjectElementCustom.cpp
+ JSHTMLObjectElementCustom.h
+ JSHTMLOptionsCollectionCustom.cpp
+ JSHTMLSelectElementCustom.cpp
+ JSHTMLSelectElementCustom.h
+ JSImageConstructor.cpp
+ JSImageConstructor.h
+ JSImageDataCustom.cpp
+ JSInspectedObjectWrapper.cpp
+ JSInspectedObjectWrapper.h
+ JSInspectorBackendCustom.cpp
+ JSInspectorCallbackWrapper.cpp
+ JSInspectorCallbackWrapper.h
+ JSJavaScriptCallFrameCustom.cpp
+ JSLazyEventListener.cpp
+ JSLazyEventListener.h
+ JSLocationCustom.cpp
+ JSLocationCustom.h
+ JSMessageChannelConstructor.cpp
+ JSMessageChannelConstructor.h
+ JSMessageChannelCustom.cpp
+ JSMessageEventCustom.cpp
+ JSMessagePortCustom.cpp
+ JSMessagePortCustom.h
+ JSMimeTypeArrayCustom.cpp
+ JSNamedNodeMapCustom.cpp
+ JSNavigatorCustom.cpp
+ JSNodeCustom.cpp
+ JSNodeFilterCondition.cpp
+ JSNodeFilterCondition.h
+ JSNodeFilterCustom.cpp
+ JSNodeIteratorCustom.cpp
+ JSNodeListCustom.cpp
+ JSOptionConstructor.cpp
+ JSOptionConstructor.h
+ JSPluginArrayCustom.cpp
+ JSPluginCustom.cpp
+ JSPluginElementFunctions.cpp
+ JSPluginElementFunctions.h
+ JSQuarantinedObjectWrapper.cpp
+ JSQuarantinedObjectWrapper.h
+ JSSharedWorkerConstructor.cpp
+ JSSharedWorkerConstructor.h
+ JSSharedWorkerCustom.cpp
+ JSSQLResultSetRowListCustom.cpp
+ JSSQLTransactionCustom.cpp
+ JSStorageCustom.cpp
+ JSStorageCustom.h
+ JSStyleSheetCustom.cpp
+ JSStyleSheetListCustom.cpp
+ JSSVGElementInstanceCustom.cpp
+ JSSVGLengthCustom.cpp
+ JSSVGMatrixCustom.cpp
+ JSSVGPathSegCustom.cpp
+ JSSVGPathSegListCustom.cpp
+ JSSVGPODTypeWrapper.h
+ JSSVGPointListCustom.cpp
+ JSSVGTransformListCustom.cpp
+ JSTextCustom.cpp
+ JSTreeWalkerCustom.cpp
+ JSWebKitCSSMatrixConstructor.cpp
+ JSWebKitCSSMatrixConstructor.h
+ JSWebKitPointConstructor.cpp
+ JSWebKitPointConstructor.h
+ JSWebSocketConstructor.cpp
+ JSWebSocketConstructor.h
+ JSWebSocketCustom.cpp
+ JSWorkerConstructor.cpp
+ JSWorkerConstructor.h
+ JSWorkerContextBase.cpp
+ JSWorkerContextBase.h
+ JSWorkerContextCustom.cpp
+ JSWorkerCustom.cpp
+ JSXMLHttpRequestConstructor.cpp
+ JSXMLHttpRequestConstructor.h
+ JSXMLHttpRequestCustom.cpp
+ JSXMLHttpRequestUploadCustom.cpp
+ JSXSLTProcessorConstructor.cpp
+ JSXSLTProcessorConstructor.h
+ JSXSLTProcessorCustom.cpp
+ ScheduledAction.cpp
+ ScheduledAction.h
+ ScriptArray.cpp
+ ScriptArray.h
+ ScriptCachedFrameData.cpp
+ ScriptCachedFrameData.h
+ ScriptCallFrame.cpp
+ ScriptCallFrame.h
+ ScriptCallStack.cpp
+ ScriptCallStack.h
+ ScriptController.cpp
+ ScriptControllerGtk.cpp
+ ScriptController.h
+ ScriptControllerHaiku.cpp
+ ScriptControllerMac.mm
+ ScriptControllerQt.cpp
+ ScriptControllerWin.cpp
+ ScriptControllerWx.cpp
+ ScriptEventListener.cpp
+ ScriptEventListener.h
+ ScriptFunctionCall.cpp
+ ScriptFunctionCall.h
+ ScriptInstance.h
+ ScriptObject.cpp
+ ScriptObject.h
+ ScriptObjectQuarantine.cpp
+ ScriptObjectQuarantine.h
+ ScriptSourceCode.h
+ ScriptSourceProvider.h
+ ScriptState.cpp
+ ScriptState.h
+ ScriptString.h
+ ScriptValue.cpp
+ ScriptValue.h
+ SerializedScriptValue.cpp
+ SerializedScriptValue.h
+ StringSourceProvider.h
+ WorkerScriptController.cpp
+ WorkerScriptController.h
+2 ScriptControllerBase.cpp
+ scripts/
+0 CodeGeneratorCOM.pm
+ CodeGeneratorJS.pm
+ CodeGeneratorObjC.pm
+ CodeGenerator.pm
+ CodeGeneratorV8.pm
+ generate-bindings.pl
+ IDLParser.pm
+ IDLStructure.pm
+ InFilesParser.pm
+3 bridge/
+0 c/
+0 c_class.cpp
+ c_class.h
+ c_instance.cpp
+ c_instance.h
+ c_runtime.cpp
+ c_runtime.h
+ c_utility.cpp
+ c_utility.h
+2 IdentifierRep.cpp
+ IdentifierRep.h
+ jni/
+0 jni_class.cpp
+ jni_class.h
+ jni_instance.cpp
+ jni_instance.h
+ jni_jsobject.h
+ jni_jsobject.mm
+ jni_objc.mm
+ jni_runtime.cpp
+ jni_runtime.h
+ jni_utility.cpp
+ jni_utility.h
+2 make_testbindings
+ npapi.h
+ NP_jsobject.cpp
+ NP_jsobject.h
+ npruntime.cpp
+ npruntime.h
+ npruntime_impl.h
+ npruntime_internal.h
+ npruntime_priv.h
+ qt/
+0 qt_class.cpp
+ qt_class.h
+ qt_instance.cpp
+ qt_instance.h
+ qt_runtime.cpp
+ qt_runtime.h
+2 runtime_array.cpp
+ runtime_array.h
+ runtime.cpp
+ runtime.h
+ runtime_method.cpp
+ runtime_method.h
+ runtime_object.cpp
+ runtime_object.h
+ runtime_root.cpp
+ runtime_root.h
+ testbindings.cpp
+ testbindings.mm
+ testC.js
+ test.js
+ testM.js
+ testqtbindings.cpp
+2 ChangeLog
+0 -2002-12-03
+ -2003-10-25
+ -2005-08-23
+ -2005-12-19
+ -2006-05-10
+ -2006-12-31
+ -2007-10-14
+ -2008-08-10
+ -2009-06-16
+2 combine-javascript-resources
+ config.h
+ css/
+0 Counter.h
+ Counter.idl
+ CSSBorderImageValue.cpp
+ CSSBorderImageValue.h
+ CSSCanvasValue.cpp
+ CSSCanvasValue.h
+ CSSCharsetRule.cpp
+ CSSCharsetRule.h
+ CSSCharsetRule.idl
+ CSSComputedStyleDeclaration.cpp
+ CSSComputedStyleDeclaration.h
+ CSSCursorImageValue.cpp
+ CSSCursorImageValue.h
+ CSSFontFace.cpp
+ CSSFontFace.h
+ CSSFontFaceRule.cpp
+ CSSFontFaceRule.h
+ CSSFontFaceRule.idl
+ CSSFontFaceSource.cpp
+ CSSFontFaceSource.h
+ CSSFontFaceSrcValue.cpp
+ CSSFontFaceSrcValue.h
+ CSSFontSelector.cpp
+ CSSFontSelector.h
+ CSSFunctionValue.cpp
+ CSSFunctionValue.h
+ CSSGradientValue.cpp
+ CSSGradientValue.h
+ CSSGrammar.y
+ CSSHelper.cpp
+ CSSHelper.h
+ CSSImageGeneratorValue.cpp
+ CSSImageGeneratorValue.h
+ CSSImageValue.cpp
+ CSSImageValue.h
+ CSSImportRule.cpp
+ CSSImportRule.h
+ CSSImportRule.idl
+ CSSInheritedValue.cpp
+ CSSInheritedValue.h
+ CSSInitialValue.cpp
+ CSSInitialValue.h
+ CSSMediaRule.cpp
+ CSSMediaRule.h
+ CSSMediaRule.idl
+ CSSMutableStyleDeclaration.cpp
+ CSSMutableStyleDeclaration.h
+ CSSNamespace.h
+ CSSPageRule.cpp
+ CSSPageRule.h
+ CSSPageRule.idl
+ CSSParser.cpp
+ CSSParser.h
+ CSSParserValues.cpp
+ CSSParserValues.h
+ CSSPrimitiveValue.cpp
+ CSSPrimitiveValue.h
+ CSSPrimitiveValue.idl
+ CSSPrimitiveValueMappings.h
+ CSSProperty.cpp
+ CSSProperty.h
+ CSSPropertyLonghand.cpp
+ CSSPropertyLonghand.h
+ CSSPropertyNames.in
+ CSSQuirkPrimitiveValue.h
+ CSSReflectionDirection.h
+ CSSReflectValue.cpp
+ CSSReflectValue.h
+ CSSRule.cpp
+ CSSRule.h
+ CSSRule.idl
+ CSSRuleList.cpp
+ CSSRuleList.h
+ CSSRuleList.idl
+ CSSSegmentedFontFace.cpp
+ CSSSegmentedFontFace.h
+ CSSSelector.cpp
+ CSSSelector.h
+ CSSSelectorList.cpp
+ CSSSelectorList.h
+ CSSStyleDeclaration.cpp
+ CSSStyleDeclaration.h
+ CSSStyleDeclaration.idl
+ CSSStyleRule.cpp
+ CSSStyleRule.h
+ CSSStyleRule.idl
+ CSSStyleSelector.cpp
+ CSSStyleSelector.h
+ CSSStyleSheet.cpp
+ CSSStyleSheet.h
+ CSSStyleSheet.idl
+ CSSTimingFunctionValue.cpp
+ CSSTimingFunctionValue.h
+ CSSUnicodeRangeValue.cpp
+ CSSUnicodeRangeValue.h
+ CSSUnknownRule.h
+ CSSUnknownRule.idl
+ CSSValue.h
+ CSSValue.idl
+ CSSValueKeywords.in
+ CSSValueList.cpp
+ CSSValueList.h
+ CSSValueList.idl
+ CSSVariableDependentValue.cpp
+ CSSVariableDependentValue.h
+ CSSVariablesDeclaration.cpp
+ CSSVariablesDeclaration.h
+ CSSVariablesDeclaration.idl
+ CSSVariablesRule.cpp
+ CSSVariablesRule.h
+ CSSVariablesRule.idl
+ DashboardRegion.h
+ DashboardSupportCSSPropertyNames.in
+ FontFamilyValue.cpp
+ FontFamilyValue.h
+ FontValue.cpp
+ FontValue.h
+ html.css
+ make-css-file-arrays.pl
+ makegrammar.pl
+ makeprop.pl
+ maketokenizer
+ makevalues.pl
+ mathml.css
+ mediaControlsChromium.css
+ mediaControls.css
+ mediaControlsQt.css
+ mediaControlsQuickTime.css
+ Media.cpp
+ MediaFeatureNames.cpp
+ MediaFeatureNames.h
+ Media.h
+ Media.idl
+ MediaList.cpp
+ MediaList.h
+ MediaList.idl
+ MediaQuery.cpp
+ MediaQueryEvaluator.cpp
+ MediaQueryEvaluator.h
+ MediaQueryExp.cpp
+ MediaQueryExp.h
+ MediaQuery.h
+ Pair.h
+ quirks.css
+ Rect.h
+ Rect.idl
+ RGBColor.cpp
+ RGBColor.h
+ RGBColor.idl
+ ShadowValue.cpp
+ ShadowValue.h
+ StyleBase.cpp
+ StyleBase.h
+ StyleList.cpp
+ StyleList.h
+ StyleSheet.cpp
+ StyleSheet.h
+ StyleSheet.idl
+ StyleSheetList.cpp
+ StyleSheetList.h
+ StyleSheetList.idl
+ svg.css
+ SVGCSSComputedStyleDeclaration.cpp
+ SVGCSSParser.cpp
+ SVGCSSPropertyNames.in
+ SVGCSSStyleSelector.cpp
+ SVGCSSValueKeywords.in
+ themeChromiumLinux.css
+ themeWin.css
+ themeWinQuirks.css
+ tokenizer.flex
+ view-source.css
+ WCSSPropertyNames.in
+ WCSSValueKeywords.in
+ WebKitCSSKeyframeRule.cpp
+ WebKitCSSKeyframeRule.h
+ WebKitCSSKeyframeRule.idl
+ WebKitCSSKeyframesRule.cpp
+ WebKitCSSKeyframesRule.h
+ WebKitCSSKeyframesRule.idl
+ WebKitCSSMatrix.cpp
+ WebKitCSSMatrix.h
+ WebKitCSSMatrix.idl
+ WebKitCSSTransformValue.cpp
+ WebKitCSSTransformValue.h
+ WebKitCSSTransformValue.idl
+ wml.css
+2 DerivedSources.cpp
+ dom/
+0 ActiveDOMObject.cpp
+ ActiveDOMObject.h
+ Attr.cpp
+ Attr.h
+ Attribute.cpp
+ Attribute.h
+ Attr.idl
+ BeforeLoadEvent.h
+ BeforeLoadEvent.idl
+ BeforeTextInsertedEvent.cpp
+ BeforeTextInsertedEvent.h
+ BeforeUnloadEvent.cpp
+ BeforeUnloadEvent.h
+ CDATASection.cpp
+ CDATASection.h
+ CDATASection.idl
+ CharacterData.cpp
+ CharacterData.h
+ CharacterData.idl
+ CheckedRadioButtons.cpp
+ CheckedRadioButtons.h
+ ChildNodeList.cpp
+ ChildNodeList.h
+ ClassNames.cpp
+ ClassNames.h
+ ClassNodeList.cpp
+ ClassNodeList.h
+ ClientRect.cpp
+ ClientRect.h
+ ClientRect.idl
+ ClientRectList.cpp
+ ClientRectList.h
+ ClientRectList.idl
+ ClipboardAccessPolicy.h
+ Clipboard.cpp
+ ClipboardEvent.cpp
+ ClipboardEvent.h
+ Clipboard.h
+ Clipboard.idl
+ Comment.cpp
+ Comment.h
+ Comment.idl
+ ContainerNodeAlgorithms.h
+ ContainerNode.cpp
+ ContainerNode.h
+ CSSMappedAttributeDeclaration.cpp
+ CSSMappedAttributeDeclaration.h
+ default/
+0 PlatformMessagePortChannel.cpp
+ PlatformMessagePortChannel.h
+2 Document.cpp
+ DocumentFragment.cpp
+ DocumentFragment.h
+ DocumentFragment.idl
+ Document.h
+ Document.idl
+ DocumentMarker.h
+ DocumentType.cpp
+ DocumentType.h
+ DocumentType.idl
+ DOMCoreException.h
+ DOMCoreException.idl
+ DOMImplementation.cpp
+ DOMImplementation.h
+ DOMImplementation.idl
+ DynamicNodeList.cpp
+ DynamicNodeList.h
+ EditingText.cpp
+ EditingText.h
+ Element.cpp
+ Element.h
+ Element.idl
+ ElementRareData.h
+ Entity.cpp
+ Entity.h
+ Entity.idl
+ EntityReference.cpp
+ EntityReference.h
+ EntityReference.idl
+ ErrorEvent.cpp
+ ErrorEvent.h
+ ErrorEvent.idl
+ Event.cpp
+ EventException.h
+ EventException.idl
+ Event.h
+ Event.idl
+ EventListener.h
+ EventListener.idl
+ EventNames.cpp
+ EventNames.h
+ EventTarget.cpp
+ EventTarget.h
+ EventTarget.idl
+ ExceptionBase.cpp
+ ExceptionBase.h
+ ExceptionCode.cpp
+ ExceptionCode.h
+ InputElement.cpp
+ InputElement.h
+ KeyboardEvent.cpp
+ KeyboardEvent.h
+ KeyboardEvent.idl
+ make_names.pl
+ MappedAttribute.cpp
+ MappedAttributeEntry.h
+ MappedAttribute.h
+ MessageChannel.cpp
+ MessageChannel.h
+ MessageChannel.idl
+ MessageEvent.cpp
+ MessageEvent.h
+ MessageEvent.idl
+ MessagePortChannel.cpp
+ MessagePortChannel.h
+ MessagePort.cpp
+ MessagePort.h
+ MessagePort.idl
+ MouseEvent.cpp
+ MouseEvent.h
+ MouseEvent.idl
+ MouseRelatedEvent.cpp
+ MouseRelatedEvent.h
+ MutationEvent.cpp
+ MutationEvent.h
+ MutationEvent.idl
+ NamedAttrMap.cpp
+ NamedAttrMap.h
+ NamedMappedAttrMap.cpp
+ NamedMappedAttrMap.h
+ NamedNodeMap.h
+ NamedNodeMap.idl
+ NameNodeList.cpp
+ NameNodeList.h
+ Node.cpp
+ NodeFilterCondition.cpp
+ NodeFilterCondition.h
+ NodeFilter.cpp
+ NodeFilter.h
+ NodeFilter.idl
+ Node.h
+ Node.idl
+ NodeIterator.cpp
+ NodeIterator.h
+ NodeIterator.idl
+ NodeList.h
+ NodeList.idl
+ NodeRareData.h
+ NodeRenderStyle.h
+ NodeWithIndex.h
+ Notation.cpp
+ Notation.h
+ Notation.idl
+ OptionElement.cpp
+ OptionElement.h
+ OptionGroupElement.cpp
+ OptionGroupElement.h
+ OverflowEvent.cpp
+ OverflowEvent.h
+ OverflowEvent.idl
+ PageTransitionEvent.cpp
+ PageTransitionEvent.h
+ PageTransitionEvent.idl
+ Position.cpp
+ PositionCreationFunctions.h
+ Position.h
+ PositionIterator.cpp
+ PositionIterator.h
+ ProcessingInstruction.cpp
+ ProcessingInstruction.h
+ ProcessingInstruction.idl
+ ProgressEvent.cpp
+ ProgressEvent.h
+ ProgressEvent.idl
+ QualifiedName.cpp
+ QualifiedName.h
+ RangeBoundaryPoint.h
+ Range.cpp
+ RangeException.h
+ RangeException.idl
+ Range.h
+ Range.idl
+ RegisteredEventListener.cpp
+ RegisteredEventListener.h
+ ScriptElement.cpp
+ ScriptElement.h
+ ScriptExecutionContext.cpp
+ ScriptExecutionContext.h
+ SelectElement.cpp
+ SelectElement.h
+ SelectorNodeList.cpp
+ SelectorNodeList.h
+ StaticNodeList.cpp
+ StaticNodeList.h
+ StyledElement.cpp
+ StyledElement.h
+ StyleElement.cpp
+ StyleElement.h
+ TagNodeList.cpp
+ TagNodeList.h
+ Text.cpp
+ TextEvent.cpp
+ TextEvent.h
+ TextEvent.idl
+ Text.h
+ Text.idl
+ Tokenizer.h
+ TransformSource.h
+ TransformSourceLibxslt.cpp
+ TransformSourceQt.cpp
+ Traversal.cpp
+ Traversal.h
+ TreeWalker.cpp
+ TreeWalker.h
+ TreeWalker.idl
+ UIEvent.cpp
+ UIEvent.h
+ UIEvent.idl
+ UIEventWithKeyState.cpp
+ UIEventWithKeyState.h
+ WebKitAnimationEvent.cpp
+ WebKitAnimationEvent.h
+ WebKitAnimationEvent.idl
+ WebKitTransitionEvent.cpp
+ WebKitTransitionEvent.h
+ WebKitTransitionEvent.idl
+ WheelEvent.cpp
+ WheelEvent.h
+ WheelEvent.idl
+ XMLTokenizer.cpp
+ XMLTokenizer.h
+ XMLTokenizerLibxml2.cpp
+ XMLTokenizerQt.cpp
+ XMLTokenizerScope.cpp
+ XMLTokenizerScope.h
+2 editing/
+0 android/
+0 EditorAndroid.cpp
+2 AppendNodeCommand.cpp
+ AppendNodeCommand.h
+ ApplyStyleCommand.cpp
+ ApplyStyleCommand.h
+ BreakBlockquoteCommand.cpp
+ BreakBlockquoteCommand.h
+ chromium/
+0 EditorChromium.cpp
+2 CompositeEditCommand.cpp
+ CompositeEditCommand.h
+ CreateLinkCommand.cpp
+ CreateLinkCommand.h
+ DeleteButtonController.cpp
+ DeleteButtonController.h
+ DeleteButton.cpp
+ DeleteButton.h
+ DeleteFromTextNodeCommand.cpp
+ DeleteFromTextNodeCommand.h
+ DeleteSelectionCommand.cpp
+ DeleteSelectionCommand.h
+ EditAction.h
+ EditCommand.cpp
+ EditCommand.h
+ EditorCommand.cpp
+ Editor.cpp
+ EditorDeleteAction.h
+ Editor.h
+ EditorInsertAction.h
+ FormatBlockCommand.cpp
+ FormatBlockCommand.h
+ gtk/
+0 SelectionControllerGtk.cpp
+2 htmlediting.cpp
+ htmlediting.h
+ HTMLInterchange.cpp
+ HTMLInterchange.h
+ IndentOutdentCommand.cpp
+ IndentOutdentCommand.h
+ InsertIntoTextNodeCommand.cpp
+ InsertIntoTextNodeCommand.h
+ InsertLineBreakCommand.cpp
+ InsertLineBreakCommand.h
+ InsertListCommand.cpp
+ InsertListCommand.h
+ InsertNodeBeforeCommand.cpp
+ InsertNodeBeforeCommand.h
+ InsertParagraphSeparatorCommand.cpp
+ InsertParagraphSeparatorCommand.h
+ InsertTextCommand.cpp
+ InsertTextCommand.h
+ JoinTextNodesCommand.cpp
+ JoinTextNodesCommand.h
+ markup.cpp
+ markup.h
+ MergeIdenticalElementsCommand.cpp
+ MergeIdenticalElementsCommand.h
+ ModifySelectionListLevel.cpp
+ ModifySelectionListLevel.h
+ MoveSelectionCommand.cpp
+ MoveSelectionCommand.h
+ qt/
+0 EditorQt.cpp
+2 RemoveCSSPropertyCommand.cpp
+ RemoveCSSPropertyCommand.h
+ RemoveFormatCommand.cpp
+ RemoveFormatCommand.h
+ RemoveNodeCommand.cpp
+ RemoveNodeCommand.h
+ RemoveNodePreservingChildrenCommand.cpp
+ RemoveNodePreservingChildrenCommand.h
+ ReplaceNodeWithSpanCommand.cpp
+ ReplaceNodeWithSpanCommand.h
+ ReplaceSelectionCommand.cpp
+ ReplaceSelectionCommand.h
+ SelectionController.cpp
+ SelectionController.h
+ SetNodeAttributeCommand.cpp
+ SetNodeAttributeCommand.h
+ SmartReplaceCF.cpp
+ SmartReplace.cpp
+ SmartReplace.h
+ SmartReplaceICU.cpp
+ SplitElementCommand.cpp
+ SplitElementCommand.h
+ SplitTextNodeCommand.cpp
+ SplitTextNodeCommand.h
+ SplitTextNodeContainingElementCommand.cpp
+ SplitTextNodeContainingElementCommand.h
+ TextAffinity.h
+ TextGranularity.h
+ TextIterator.cpp
+ TextIterator.h
+ TypingCommand.cpp
+ TypingCommand.h
+ UnlinkCommand.cpp
+ UnlinkCommand.h
+ VisiblePosition.cpp
+ VisiblePosition.h
+ VisibleSelection.cpp
+ VisibleSelection.h
+ visible_units.cpp
+ visible_units.h
+ WrapContentsInDummySpanCommand.cpp
+ WrapContentsInDummySpanCommand.h
+2 ForwardingHeaders/
+0 debugger/
+0 DebuggerActivation.h
+ DebuggerCallFrame.h
+ Debugger.h
+2 interpreter/
+0 CallFrame.h
+ Interpreter.h
+2 jit/
+0 JITCode.h
+2 masm/
+0 X86Assembler.h
+2 parser/
+0 SourceCode.h
+ SourceProvider.h
+2 pcre/
+0 pcre.h
+2 profiler/
+0 Profile.h
+ ProfileNode.h
+ Profiler.h
+2 runtime/
+0 ArgList.h
+ ArrayPrototype.h
+ BooleanObject.h
+ CallData.h
+ Collector.h
+ Completion.h
+ ConstructData.h
+ DateInstance.h
+ Error.h
+ ExceptionHelpers.h
+ FunctionConstructor.h
+ FunctionPrototype.h
+ Identifier.h
+ InitializeThreading.h
+ InternalFunction.h
+ JSAPIValueWrapper.h
+ JSArray.h
+ JSByteArray.h
+ JSCell.h
+ JSFunction.h
+ JSGlobalData.h
+ JSGlobalObject.h
+ JSLock.h
+ JSNumberCell.h
+ JSObject.h
+ JSString.h
+ JSValue.h
+ Lookup.h
+ ObjectPrototype.h
+ Operations.h
+ PropertyMap.h
+ PropertyNameArray.h
+ Protect.h
+ PrototypeFunction.h
+ StringObject.h
+ StringObjectThatMasqueradesAsUndefined.h
+ StringPrototype.h
+ StructureChain.h
+ Structure.h
+ SymbolTable.h
+ UString.h
+2 wrec/
+0 WREC.h
+2 wtf/
+0 AlwaysInline.h
+ ASCIICType.h
+ Assertions.h
+ ByteArray.h
+ CrossThreadRefCounted.h
+ CurrentTime.h
+ DateInstanceCache.h
+ DateMath.h
+ Deque.h
+ DisallowCType.h
+ dtoa.h
+ FastAllocBase.h
+ FastMalloc.h
+ Forward.h
+ GetPtr.h
+ HashCountedSet.h
+ HashFunctions.h
+ HashMap.h
+ HashSet.h
+ HashTable.h
+ HashTraits.h
+ ListHashSet.h
+ ListRefPtr.h
+ Locker.h
+ MainThread.h
+ MathExtras.h
+ MessageQueue.h
+ Noncopyable.h
+ NotFound.h
+ OwnArrayPtr.h
+ OwnFastMallocPtr.h
+ OwnPtrCommon.h
+ OwnPtr.h
+ PassOwnPtr.h
+ PassRefPtr.h
+ Platform.h
+ PossiblyNull.h
+ PtrAndFlags.h
+ RandomNumber.h
+ RefCounted.h
+ RefCountedLeakCounter.h
+ RefPtr.h
+ RetainPtr.h
+ StdLibExtras.h
+ StringExtras.h
+ Threading.h
+ ThreadSpecific.h
+ TypeTraits.h
+ unicode/
+0 Collator.h
+ icu/
+0 UnicodeIcu.h
+2 Unicode.h
+ UTF8.h
+2 UnusedParam.h
+ Vector.h
+ VectorTraits.h
+ VMTags.h
+3 generated/
+0 ArrayPrototype.lut.h
+ chartables.c
+ ColorData.c
+ CSSGrammar.cpp
+ CSSGrammar.h
+ CSSPropertyNames.cpp
+ CSSPropertyNames.h
+ CSSValueKeywords.c
+ CSSValueKeywords.h
+ DatePrototype.lut.h
+ DocTypeStrings.cpp
+ Grammar.cpp
+ Grammar.h
+ HTMLElementFactory.cpp
+ HTMLElementFactory.h
+ HTMLEntityNames.c
+ HTMLNames.cpp
+ HTMLNames.h
+ JSAbstractWorker.cpp
+ JSAbstractWorker.h
+ JSAttr.cpp
+ JSAttr.h
+ JSBarInfo.cpp
+ JSBarInfo.h
+ JSBeforeLoadEvent.cpp
+ JSBeforeLoadEvent.h
+ JSCanvasArrayBuffer.cpp
+ JSCanvasArrayBuffer.h
+ JSCanvasArray.cpp
+ JSCanvasArray.h
+ JSCanvasByteArray.cpp
+ JSCanvasByteArray.h
+ JSCanvasFloatArray.cpp
+ JSCanvasFloatArray.h
+ JSCanvasGradient.cpp
+ JSCanvasGradient.h
+ JSCanvasIntArray.cpp
+ JSCanvasIntArray.h
+ JSCanvasPattern.cpp
+ JSCanvasPattern.h
+ JSCanvasRenderingContext2D.cpp
+ JSCanvasRenderingContext2D.h
+ JSCanvasRenderingContext3D.cpp
+ JSCanvasRenderingContext3D.h
+ JSCanvasRenderingContext.cpp
+ JSCanvasRenderingContext.h
+ JSCanvasShortArray.cpp
+ JSCanvasShortArray.h
+ JSCanvasUnsignedByteArray.cpp
+ JSCanvasUnsignedByteArray.h
+ JSCanvasUnsignedIntArray.cpp
+ JSCanvasUnsignedIntArray.h
+ JSCanvasUnsignedShortArray.cpp
+ JSCanvasUnsignedShortArray.h
+ JSCDATASection.cpp
+ JSCDATASection.h
+ JSCharacterData.cpp
+ JSCharacterData.h
+ JSClientRect.cpp
+ JSClientRect.h
+ JSClientRectList.cpp
+ JSClientRectList.h
+ JSClipboard.cpp
+ JSClipboard.h
+ JSComment.cpp
+ JSComment.h
+ JSConsole.cpp
+ JSConsole.h
+ JSCoordinates.cpp
+ JSCoordinates.h
+ JSCounter.cpp
+ JSCounter.h
+ JSCSSCharsetRule.cpp
+ JSCSSCharsetRule.h
+ JSCSSFontFaceRule.cpp
+ JSCSSFontFaceRule.h
+ JSCSSImportRule.cpp
+ JSCSSImportRule.h
+ JSCSSMediaRule.cpp
+ JSCSSMediaRule.h
+ JSCSSPageRule.cpp
+ JSCSSPageRule.h
+ JSCSSPrimitiveValue.cpp
+ JSCSSPrimitiveValue.h
+ JSCSSRule.cpp
+ JSCSSRule.h
+ JSCSSRuleList.cpp
+ JSCSSRuleList.h
+ JSCSSStyleDeclaration.cpp
+ JSCSSStyleDeclaration.h
+ JSCSSStyleRule.cpp
+ JSCSSStyleRule.h
+ JSCSSStyleSheet.cpp
+ JSCSSStyleSheet.h
+ JSCSSValue.cpp
+ JSCSSValue.h
+ JSCSSValueList.cpp
+ JSCSSValueList.h
+ JSCSSVariablesDeclaration.cpp
+ JSCSSVariablesDeclaration.h
+ JSCSSVariablesRule.cpp
+ JSCSSVariablesRule.h
+ JSDatabase.cpp
+ JSDatabase.h
+ JSDataGridColumn.cpp
+ JSDataGridColumn.h
+ JSDataGridColumnList.cpp
+ JSDataGridColumnList.h
+ JSDedicatedWorkerContext.cpp
+ JSDedicatedWorkerContext.h
+ JSDocument.cpp
+ JSDocumentFragment.cpp
+ JSDocumentFragment.h
+ JSDocument.h
+ JSDocumentType.cpp
+ JSDocumentType.h
+ JSDOMApplicationCache.cpp
+ JSDOMApplicationCache.h
+ JSDOMCoreException.cpp
+ JSDOMCoreException.h
+ JSDOMImplementation.cpp
+ JSDOMImplementation.h
+ JSDOMParser.cpp
+ JSDOMParser.h
+ JSDOMSelection.cpp
+ JSDOMSelection.h
+ JSDOMWindowBase.lut.h
+ JSDOMWindow.cpp
+ JSDOMWindow.h
+ JSElement.cpp
+ JSElement.h
+ JSEntity.cpp
+ JSEntity.h
+ JSEntityReference.cpp
+ JSEntityReference.h
+ JSErrorEvent.cpp
+ JSErrorEvent.h
+ JSEvent.cpp
+ JSEventException.cpp
+ JSEventException.h
+ JSEvent.h
+ JSEventSource.cpp
+ JSEventSource.h
+ JSFile.cpp
+ JSFile.h
+ JSFileList.cpp
+ JSFileList.h
+ JSGeolocation.cpp
+ JSGeolocation.h
+ JSGeoposition.cpp
+ JSGeoposition.h
+ JSHistory.cpp
+ JSHistory.h
+ JSHTMLAllCollection.cpp
+ JSHTMLAllCollection.h
+ JSHTMLAnchorElement.cpp
+ JSHTMLAnchorElement.h
+ JSHTMLAppletElement.cpp
+ JSHTMLAppletElement.h
+ JSHTMLAreaElement.cpp
+ JSHTMLAreaElement.h
+ JSHTMLAudioElement.cpp
+ JSHTMLAudioElement.h
+ JSHTMLBaseElement.cpp
+ JSHTMLBaseElement.h
+ JSHTMLBaseFontElement.cpp
+ JSHTMLBaseFontElement.h
+ JSHTMLBlockquoteElement.cpp
+ JSHTMLBlockquoteElement.h
+ JSHTMLBodyElement.cpp
+ JSHTMLBodyElement.h
+ JSHTMLBRElement.cpp
+ JSHTMLBRElement.h
+ JSHTMLButtonElement.cpp
+ JSHTMLButtonElement.h
+ JSHTMLCanvasElement.cpp
+ JSHTMLCanvasElement.h
+ JSHTMLCollection.cpp
+ JSHTMLCollection.h
+ JSHTMLDataGridCellElement.cpp
+ JSHTMLDataGridCellElement.h
+ JSHTMLDataGridColElement.cpp
+ JSHTMLDataGridColElement.h
+ JSHTMLDataGridElement.cpp
+ JSHTMLDataGridElement.h
+ JSHTMLDataGridRowElement.cpp
+ JSHTMLDataGridRowElement.h
+ JSHTMLDataListElement.cpp
+ JSHTMLDataListElement.h
+ JSHTMLDirectoryElement.cpp
+ JSHTMLDirectoryElement.h
+ JSHTMLDivElement.cpp
+ JSHTMLDivElement.h
+ JSHTMLDListElement.cpp
+ JSHTMLDListElement.h
+ JSHTMLDocument.cpp
+ JSHTMLDocument.h
+ JSHTMLElement.cpp
+ JSHTMLElement.h
+ JSHTMLElementWrapperFactory.cpp
+ JSHTMLElementWrapperFactory.h
+ JSHTMLEmbedElement.cpp
+ JSHTMLEmbedElement.h
+ JSHTMLFieldSetElement.cpp
+ JSHTMLFieldSetElement.h
+ JSHTMLFontElement.cpp
+ JSHTMLFontElement.h
+ JSHTMLFormElement.cpp
+ JSHTMLFormElement.h
+ JSHTMLFrameElement.cpp
+ JSHTMLFrameElement.h
+ JSHTMLFrameSetElement.cpp
+ JSHTMLFrameSetElement.h
+ JSHTMLHeadElement.cpp
+ JSHTMLHeadElement.h
+ JSHTMLHeadingElement.cpp
+ JSHTMLHeadingElement.h
+ JSHTMLHRElement.cpp
+ JSHTMLHRElement.h
+ JSHTMLHtmlElement.cpp
+ JSHTMLHtmlElement.h
+ JSHTMLIFrameElement.cpp
+ JSHTMLIFrameElement.h
+ JSHTMLImageElement.cpp
+ JSHTMLImageElement.h
+ JSHTMLInputElement.cpp
+ JSHTMLInputElement.h
+ JSHTMLIsIndexElement.cpp
+ JSHTMLIsIndexElement.h
+ JSHTMLLabelElement.cpp
+ JSHTMLLabelElement.h
+ JSHTMLLegendElement.cpp
+ JSHTMLLegendElement.h
+ JSHTMLLIElement.cpp
+ JSHTMLLIElement.h
+ JSHTMLLinkElement.cpp
+ JSHTMLLinkElement.h
+ JSHTMLMapElement.cpp
+ JSHTMLMapElement.h
+ JSHTMLMarqueeElement.cpp
+ JSHTMLMarqueeElement.h
+ JSHTMLMediaElement.cpp
+ JSHTMLMediaElement.h
+ JSHTMLMenuElement.cpp
+ JSHTMLMenuElement.h
+ JSHTMLMetaElement.cpp
+ JSHTMLMetaElement.h
+ JSHTMLModElement.cpp
+ JSHTMLModElement.h
+ JSHTMLObjectElement.cpp
+ JSHTMLObjectElement.h
+ JSHTMLOListElement.cpp
+ JSHTMLOListElement.h
+ JSHTMLOptGroupElement.cpp
+ JSHTMLOptGroupElement.h
+ JSHTMLOptionElement.cpp
+ JSHTMLOptionElement.h
+ JSHTMLOptionsCollection.cpp
+ JSHTMLOptionsCollection.h
+ JSHTMLParagraphElement.cpp
+ JSHTMLParagraphElement.h
+ JSHTMLParamElement.cpp
+ JSHTMLParamElement.h
+ JSHTMLPreElement.cpp
+ JSHTMLPreElement.h
+ JSHTMLQuoteElement.cpp
+ JSHTMLQuoteElement.h
+ JSHTMLScriptElement.cpp
+ JSHTMLScriptElement.h
+ JSHTMLSelectElement.cpp
+ JSHTMLSelectElement.h
+ JSHTMLSourceElement.cpp
+ JSHTMLSourceElement.h
+ JSHTMLStyleElement.cpp
+ JSHTMLStyleElement.h
+ JSHTMLTableCaptionElement.cpp
+ JSHTMLTableCaptionElement.h
+ JSHTMLTableCellElement.cpp
+ JSHTMLTableCellElement.h
+ JSHTMLTableColElement.cpp
+ JSHTMLTableColElement.h
+ JSHTMLTableElement.cpp
+ JSHTMLTableElement.h
+ JSHTMLTableRowElement.cpp
+ JSHTMLTableRowElement.h
+ JSHTMLTableSectionElement.cpp
+ JSHTMLTableSectionElement.h
+ JSHTMLTextAreaElement.cpp
+ JSHTMLTextAreaElement.h
+ JSHTMLTitleElement.cpp
+ JSHTMLTitleElement.h
+ JSHTMLUListElement.cpp
+ JSHTMLUListElement.h
+ JSHTMLVideoElement.cpp
+ JSHTMLVideoElement.h
+ JSImageData.cpp
+ JSImageData.h
+ JSInspectorBackend.cpp
+ JSInspectorBackend.h
+ JSJavaScriptCallFrame.cpp
+ JSJavaScriptCallFrame.h
+ JSKeyboardEvent.cpp
+ JSKeyboardEvent.h
+ JSLocation.cpp
+ JSLocation.h
+ JSMedia.cpp
+ JSMediaError.cpp
+ JSMediaError.h
+ JSMedia.h
+ JSMediaList.cpp
+ JSMediaList.h
+ JSMessageChannel.cpp
+ JSMessageChannel.h
+ JSMessageEvent.cpp
+ JSMessageEvent.h
+ JSMessagePort.cpp
+ JSMessagePort.h
+ JSMimeTypeArray.cpp
+ JSMimeTypeArray.h
+ JSMimeType.cpp
+ JSMimeType.h
+ JSMouseEvent.cpp
+ JSMouseEvent.h
+ JSMutationEvent.cpp
+ JSMutationEvent.h
+ JSNamedNodeMap.cpp
+ JSNamedNodeMap.h
+ JSNavigator.cpp
+ JSNavigator.h
+ JSNode.cpp
+ JSNodeFilter.cpp
+ JSNodeFilter.h
+ JSNode.h
+ JSNodeIterator.cpp
+ JSNodeIterator.h
+ JSNodeList.cpp
+ JSNodeList.h
+ JSNotation.cpp
+ JSNotation.h
+ JSONObject.lut.h
+ JSOverflowEvent.cpp
+ JSOverflowEvent.h
+ JSPageTransitionEvent.cpp
+ JSPageTransitionEvent.h
+ JSPluginArray.cpp
+ JSPluginArray.h
+ JSPlugin.cpp
+ JSPlugin.h
+ JSPositionError.cpp
+ JSPositionError.h
+ JSProcessingInstruction.cpp
+ JSProcessingInstruction.h
+ JSProgressEvent.cpp
+ JSProgressEvent.h
+ JSRange.cpp
+ JSRangeException.cpp
+ JSRangeException.h
+ JSRange.h
+ JSRect.cpp
+ JSRect.h
+ JSRGBColor.cpp
+ JSRGBColor.h
+ JSScreen.cpp
+ JSScreen.h
+ JSSharedWorkerContext.cpp
+ JSSharedWorkerContext.h
+ JSSharedWorker.cpp
+ JSSharedWorker.h
+ JSSQLError.cpp
+ JSSQLError.h
+ JSSQLResultSet.cpp
+ JSSQLResultSet.h
+ JSSQLResultSetRowList.cpp
+ JSSQLResultSetRowList.h
+ JSSQLTransaction.cpp
+ JSSQLTransaction.h
+ JSStorage.cpp
+ JSStorageEvent.cpp
+ JSStorageEvent.h
+ JSStorage.h
+ JSStyleSheet.cpp
+ JSStyleSheet.h
+ JSStyleSheetList.cpp
+ JSStyleSheetList.h
+ JSSVGAElement.cpp
+ JSSVGAElement.h
+ JSSVGAltGlyphElement.cpp
+ JSSVGAltGlyphElement.h
+ JSSVGAngle.cpp
+ JSSVGAngle.h
+ JSSVGAnimateColorElement.cpp
+ JSSVGAnimateColorElement.h
+ JSSVGAnimatedAngle.cpp
+ JSSVGAnimatedAngle.h
+ JSSVGAnimatedBoolean.cpp
+ JSSVGAnimatedBoolean.h
+ JSSVGAnimatedEnumeration.cpp
+ JSSVGAnimatedEnumeration.h
+ JSSVGAnimatedInteger.cpp
+ JSSVGAnimatedInteger.h
+ JSSVGAnimatedLength.cpp
+ JSSVGAnimatedLength.h
+ JSSVGAnimatedLengthList.cpp
+ JSSVGAnimatedLengthList.h
+ JSSVGAnimatedNumber.cpp
+ JSSVGAnimatedNumber.h
+ JSSVGAnimatedNumberList.cpp
+ JSSVGAnimatedNumberList.h
+ JSSVGAnimatedPreserveAspectRatio.cpp
+ JSSVGAnimatedPreserveAspectRatio.h
+ JSSVGAnimatedRect.cpp
+ JSSVGAnimatedRect.h
+ JSSVGAnimatedString.cpp
+ JSSVGAnimatedString.h
+ JSSVGAnimatedTransformList.cpp
+ JSSVGAnimatedTransformList.h
+ JSSVGAnimateElement.cpp
+ JSSVGAnimateElement.h
+ JSSVGAnimateTransformElement.cpp
+ JSSVGAnimateTransformElement.h
+ JSSVGAnimationElement.cpp
+ JSSVGAnimationElement.h
+ JSSVGCircleElement.cpp
+ JSSVGCircleElement.h
+ JSSVGClipPathElement.cpp
+ JSSVGClipPathElement.h
+ JSSVGColor.cpp
+ JSSVGColor.h
+ JSSVGComponentTransferFunctionElement.cpp
+ JSSVGComponentTransferFunctionElement.h
+ JSSVGCursorElement.cpp
+ JSSVGCursorElement.h
+ JSSVGDefsElement.cpp
+ JSSVGDefsElement.h
+ JSSVGDescElement.cpp
+ JSSVGDescElement.h
+ JSSVGDocument.cpp
+ JSSVGDocument.h
+ JSSVGElement.cpp
+ JSSVGElement.h
+ JSSVGElementInstance.cpp
+ JSSVGElementInstance.h
+ JSSVGElementInstanceList.cpp
+ JSSVGElementInstanceList.h
+ JSSVGElementWrapperFactory.cpp
+ JSSVGElementWrapperFactory.h
+ JSSVGEllipseElement.cpp
+ JSSVGEllipseElement.h
+ JSSVGException.cpp
+ JSSVGException.h
+ JSSVGFEBlendElement.cpp
+ JSSVGFEBlendElement.h
+ JSSVGFEColorMatrixElement.cpp
+ JSSVGFEColorMatrixElement.h
+ JSSVGFEComponentTransferElement.cpp
+ JSSVGFEComponentTransferElement.h
+ JSSVGFECompositeElement.cpp
+ JSSVGFECompositeElement.h
+ JSSVGFEDiffuseLightingElement.cpp
+ JSSVGFEDiffuseLightingElement.h
+ JSSVGFEDisplacementMapElement.cpp
+ JSSVGFEDisplacementMapElement.h
+ JSSVGFEDistantLightElement.cpp
+ JSSVGFEDistantLightElement.h
+ JSSVGFEFloodElement.cpp
+ JSSVGFEFloodElement.h
+ JSSVGFEFuncAElement.cpp
+ JSSVGFEFuncAElement.h
+ JSSVGFEFuncBElement.cpp
+ JSSVGFEFuncBElement.h
+ JSSVGFEFuncGElement.cpp
+ JSSVGFEFuncGElement.h
+ JSSVGFEFuncRElement.cpp
+ JSSVGFEFuncRElement.h
+ JSSVGFEGaussianBlurElement.cpp
+ JSSVGFEGaussianBlurElement.h
+ JSSVGFEImageElement.cpp
+ JSSVGFEImageElement.h
+ JSSVGFEMergeElement.cpp
+ JSSVGFEMergeElement.h
+ JSSVGFEMergeNodeElement.cpp
+ JSSVGFEMergeNodeElement.h
+ JSSVGFEMorphologyElement.cpp
+ JSSVGFEMorphologyElement.h
+ JSSVGFEOffsetElement.cpp
+ JSSVGFEOffsetElement.h
+ JSSVGFEPointLightElement.cpp
+ JSSVGFEPointLightElement.h
+ JSSVGFESpecularLightingElement.cpp
+ JSSVGFESpecularLightingElement.h
+ JSSVGFESpotLightElement.cpp
+ JSSVGFESpotLightElement.h
+ JSSVGFETileElement.cpp
+ JSSVGFETileElement.h
+ JSSVGFETurbulenceElement.cpp
+ JSSVGFETurbulenceElement.h
+ JSSVGFilterElement.cpp
+ JSSVGFilterElement.h
+ JSSVGFontElement.cpp
+ JSSVGFontElement.h
+ JSSVGFontFaceElement.cpp
+ JSSVGFontFaceElement.h
+ JSSVGFontFaceFormatElement.cpp
+ JSSVGFontFaceFormatElement.h
+ JSSVGFontFaceNameElement.cpp
+ JSSVGFontFaceNameElement.h
+ JSSVGFontFaceSrcElement.cpp
+ JSSVGFontFaceSrcElement.h
+ JSSVGFontFaceUriElement.cpp
+ JSSVGFontFaceUriElement.h
+ JSSVGForeignObjectElement.cpp
+ JSSVGForeignObjectElement.h
+ JSSVGGElement.cpp
+ JSSVGGElement.h
+ JSSVGGlyphElement.cpp
+ JSSVGGlyphElement.h
+ JSSVGGradientElement.cpp
+ JSSVGGradientElement.h
+ JSSVGHKernElement.cpp
+ JSSVGHKernElement.h
+ JSSVGImageElement.cpp
+ JSSVGImageElement.h
+ JSSVGLength.cpp
+ JSSVGLength.h
+ JSSVGLengthList.cpp
+ JSSVGLengthList.h
+ JSSVGLinearGradientElement.cpp
+ JSSVGLinearGradientElement.h
+ JSSVGLineElement.cpp
+ JSSVGLineElement.h
+ JSSVGMarkerElement.cpp
+ JSSVGMarkerElement.h
+ JSSVGMaskElement.cpp
+ JSSVGMaskElement.h
+ JSSVGMatrix.cpp
+ JSSVGMatrix.h
+ JSSVGMetadataElement.cpp
+ JSSVGMetadataElement.h
+ JSSVGMissingGlyphElement.cpp
+ JSSVGMissingGlyphElement.h
+ JSSVGNumber.cpp
+ JSSVGNumber.h
+ JSSVGNumberList.cpp
+ JSSVGNumberList.h
+ JSSVGPaint.cpp
+ JSSVGPaint.h
+ JSSVGPathElement.cpp
+ JSSVGPathElement.h
+ JSSVGPathSegArcAbs.cpp
+ JSSVGPathSegArcAbs.h
+ JSSVGPathSegArcRel.cpp
+ JSSVGPathSegArcRel.h
+ JSSVGPathSegClosePath.cpp
+ JSSVGPathSegClosePath.h
+ JSSVGPathSeg.cpp
+ JSSVGPathSegCurvetoCubicAbs.cpp
+ JSSVGPathSegCurvetoCubicAbs.h
+ JSSVGPathSegCurvetoCubicRel.cpp
+ JSSVGPathSegCurvetoCubicRel.h
+ JSSVGPathSegCurvetoCubicSmoothAbs.cpp
+ JSSVGPathSegCurvetoCubicSmoothAbs.h
+ JSSVGPathSegCurvetoCubicSmoothRel.cpp
+ JSSVGPathSegCurvetoCubicSmoothRel.h
+ JSSVGPathSegCurvetoQuadraticAbs.cpp
+ JSSVGPathSegCurvetoQuadraticAbs.h
+ JSSVGPathSegCurvetoQuadraticRel.cpp
+ JSSVGPathSegCurvetoQuadraticRel.h
+ JSSVGPathSegCurvetoQuadraticSmoothAbs.cpp
+ JSSVGPathSegCurvetoQuadraticSmoothAbs.h
+ JSSVGPathSegCurvetoQuadraticSmoothRel.cpp
+ JSSVGPathSegCurvetoQuadraticSmoothRel.h
+ JSSVGPathSeg.h
+ JSSVGPathSegLinetoAbs.cpp
+ JSSVGPathSegLinetoAbs.h
+ JSSVGPathSegLinetoHorizontalAbs.cpp
+ JSSVGPathSegLinetoHorizontalAbs.h
+ JSSVGPathSegLinetoHorizontalRel.cpp
+ JSSVGPathSegLinetoHorizontalRel.h
+ JSSVGPathSegLinetoRel.cpp
+ JSSVGPathSegLinetoRel.h
+ JSSVGPathSegLinetoVerticalAbs.cpp
+ JSSVGPathSegLinetoVerticalAbs.h
+ JSSVGPathSegLinetoVerticalRel.cpp
+ JSSVGPathSegLinetoVerticalRel.h
+ JSSVGPathSegList.cpp
+ JSSVGPathSegList.h
+ JSSVGPathSegMovetoAbs.cpp
+ JSSVGPathSegMovetoAbs.h
+ JSSVGPathSegMovetoRel.cpp
+ JSSVGPathSegMovetoRel.h
+ JSSVGPatternElement.cpp
+ JSSVGPatternElement.h
+ JSSVGPoint.cpp
+ JSSVGPoint.h
+ JSSVGPointList.cpp
+ JSSVGPointList.h
+ JSSVGPolygonElement.cpp
+ JSSVGPolygonElement.h
+ JSSVGPolylineElement.cpp
+ JSSVGPolylineElement.h
+ JSSVGPreserveAspectRatio.cpp
+ JSSVGPreserveAspectRatio.h
+ JSSVGRadialGradientElement.cpp
+ JSSVGRadialGradientElement.h
+ JSSVGRect.cpp
+ JSSVGRectElement.cpp
+ JSSVGRectElement.h
+ JSSVGRect.h
+ JSSVGRenderingIntent.cpp
+ JSSVGRenderingIntent.h
+ JSSVGScriptElement.cpp
+ JSSVGScriptElement.h
+ JSSVGSetElement.cpp
+ JSSVGSetElement.h
+ JSSVGStopElement.cpp
+ JSSVGStopElement.h
+ JSSVGStringList.cpp
+ JSSVGStringList.h
+ JSSVGStyleElement.cpp
+ JSSVGStyleElement.h
+ JSSVGSVGElement.cpp
+ JSSVGSVGElement.h
+ JSSVGSwitchElement.cpp
+ JSSVGSwitchElement.h
+ JSSVGSymbolElement.cpp
+ JSSVGSymbolElement.h
+ JSSVGTextContentElement.cpp
+ JSSVGTextContentElement.h
+ JSSVGTextElement.cpp
+ JSSVGTextElement.h
+ JSSVGTextPathElement.cpp
+ JSSVGTextPathElement.h
+ JSSVGTextPositioningElement.cpp
+ JSSVGTextPositioningElement.h
+ JSSVGTitleElement.cpp
+ JSSVGTitleElement.h
+ JSSVGTransform.cpp
+ JSSVGTransform.h
+ JSSVGTransformList.cpp
+ JSSVGTransformList.h
+ JSSVGTRefElement.cpp
+ JSSVGTRefElement.h
+ JSSVGTSpanElement.cpp
+ JSSVGTSpanElement.h
+ JSSVGUnitTypes.cpp
+ JSSVGUnitTypes.h
+ JSSVGUseElement.cpp
+ JSSVGUseElement.h
+ JSSVGViewElement.cpp
+ JSSVGViewElement.h
+ JSSVGZoomEvent.cpp
+ JSSVGZoomEvent.h
+ JSText.cpp
+ JSTextEvent.cpp
+ JSTextEvent.h
+ JSText.h
+ JSTextMetrics.cpp
+ JSTextMetrics.h
+ JSTimeRanges.cpp
+ JSTimeRanges.h
+ JSTreeWalker.cpp
+ JSTreeWalker.h
+ JSUIEvent.cpp
+ JSUIEvent.h
+ JSValidityState.cpp
+ JSValidityState.h
+ JSVoidCallback.cpp
+ JSVoidCallback.h
+ JSWebKitAnimationEvent.cpp
+ JSWebKitAnimationEvent.h
+ JSWebKitCSSKeyframeRule.cpp
+ JSWebKitCSSKeyframeRule.h
+ JSWebKitCSSKeyframesRule.cpp
+ JSWebKitCSSKeyframesRule.h
+ JSWebKitCSSMatrix.cpp
+ JSWebKitCSSMatrix.h
+ JSWebKitCSSTransformValue.cpp
+ JSWebKitCSSTransformValue.h
+ JSWebKitPoint.cpp
+ JSWebKitPoint.h
+ JSWebKitTransitionEvent.cpp
+ JSWebKitTransitionEvent.h
+ JSWebSocket.cpp
+ JSWebSocket.h
+ JSWheelEvent.cpp
+ JSWheelEvent.h
+ JSWorkerContextBase.lut.h
+ JSWorkerContext.cpp
+ JSWorkerContext.h
+ JSWorker.cpp
+ JSWorker.h
+ JSWorkerLocation.cpp
+ JSWorkerLocation.h
+ JSWorkerNavigator.cpp
+ JSWorkerNavigator.h
+ JSXMLHttpRequest.cpp
+ JSXMLHttpRequestException.cpp
+ JSXMLHttpRequestException.h
+ JSXMLHttpRequest.h
+ JSXMLHttpRequestProgressEvent.cpp
+ JSXMLHttpRequestProgressEvent.h
+ JSXMLHttpRequestUpload.cpp
+ JSXMLHttpRequestUpload.h
+ JSXMLSerializer.cpp
+ JSXMLSerializer.h
+ JSXPathEvaluator.cpp
+ JSXPathEvaluator.h
+ JSXPathException.cpp
+ JSXPathException.h
+ JSXPathExpression.cpp
+ JSXPathExpression.h
+ JSXPathNSResolver.cpp
+ JSXPathNSResolver.h
+ JSXPathResult.cpp
+ JSXPathResult.h
+ JSXSLTProcessor.cpp
+ JSXSLTProcessor.h
+ Lexer.lut.h
+ MathObject.lut.h
+ NumberConstructor.lut.h
+ RegExpConstructor.lut.h
+ RegExpObject.lut.h
+ StringPrototype.lut.h
+ SVGElementFactory.cpp
+ SVGElementFactory.h
+ SVGNames.cpp
+ SVGNames.h
+ tokenizer.cpp
+ UserAgentStyleSheetsData.cpp
+ UserAgentStyleSheets.h
+ WebKitVersion.h
+ XLinkNames.cpp
+ XLinkNames.h
+ XMLNames.cpp
+ XMLNames.h
+ XPathGrammar.cpp
+ XPathGrammar.h
+2 history/
+0 BackForwardListChromium.cpp
+ BackForwardList.cpp
+ BackForwardList.h
+ CachedFrame.cpp
+ CachedFrame.h
+ CachedFramePlatformData.h
+ CachedPage.cpp
+ CachedPage.h
+ cf/
+0 HistoryPropertyList.cpp
+ HistoryPropertyList.h
+2 HistoryItem.cpp
+ HistoryItem.h
+ PageCache.cpp
+ PageCache.h
+ qt/
+0 HistoryItemQt.cpp
+3 html/
+0 canvas/
+0 CanvasActiveInfo.h
+ CanvasActiveInfo.idl
+ CanvasArrayBuffer.cpp
+ CanvasArrayBuffer.h
+ CanvasArrayBuffer.idl
+ CanvasArray.cpp
+ CanvasArray.h
+ CanvasArray.idl
+ CanvasBuffer.cpp
+ CanvasBuffer.h
+ CanvasBuffer.idl
+ CanvasByteArray.cpp
+ CanvasByteArray.h
+ CanvasByteArray.idl
+ CanvasFloatArray.cpp
+ CanvasFloatArray.h
+ CanvasFloatArray.idl
+ CanvasFramebuffer.cpp
+ CanvasFramebuffer.h
+ CanvasFramebuffer.idl
+ CanvasGradient.cpp
+ CanvasGradient.h
+ CanvasGradient.idl
+ CanvasIntArray.cpp
+ CanvasIntArray.h
+ CanvasIntArray.idl
+ CanvasNumberArray.cpp
+ CanvasNumberArray.h
+ CanvasNumberArray.idl
+ CanvasObject.cpp
+ CanvasObject.h
+ CanvasPattern.cpp
+ CanvasPattern.h
+ CanvasPattern.idl
+ CanvasPixelArray.cpp
+ CanvasPixelArray.h
+ CanvasPixelArray.idl
+ CanvasProgram.cpp
+ CanvasProgram.h
+ CanvasProgram.idl
+ CanvasRenderbuffer.cpp
+ CanvasRenderbuffer.h
+ CanvasRenderbuffer.idl
+ CanvasRenderingContext2D.cpp
+ CanvasRenderingContext2D.h
+ CanvasRenderingContext2D.idl
+ CanvasRenderingContext3D.cpp
+ CanvasRenderingContext3D.h
+ CanvasRenderingContext3D.idl
+ CanvasRenderingContext.cpp
+ CanvasRenderingContext.h
+ CanvasRenderingContext.idl
+ CanvasShader.cpp
+ CanvasShader.h
+ CanvasShader.idl
+ CanvasShortArray.cpp
+ CanvasShortArray.h
+ CanvasShortArray.idl
+ CanvasStyle.cpp
+ CanvasStyle.h
+ CanvasTexture.cpp
+ CanvasTexture.h
+ CanvasTexture.idl
+ CanvasUnsignedByteArray.cpp
+ CanvasUnsignedByteArray.h
+ CanvasUnsignedByteArray.idl
+ CanvasUnsignedIntArray.cpp
+ CanvasUnsignedIntArray.h
+ CanvasUnsignedIntArray.idl
+ CanvasUnsignedShortArray.cpp
+ CanvasUnsignedShortArray.h
+ CanvasUnsignedShortArray.idl
+2 CollectionCache.cpp
+ CollectionCache.h
+ CollectionType.h
+ DataGridColumn.cpp
+ DataGridColumn.h
+ DataGridColumn.idl
+ DataGridColumnList.cpp
+ DataGridColumnList.h
+ DataGridColumnList.idl
+ DataGridDataSource.h
+ DocTypeStrings.gperf
+ DOMDataGridDataSource.cpp
+ DOMDataGridDataSource.h
+ File.cpp
+ File.h
+ File.idl
+ FileList.cpp
+ FileList.h
+ FileList.idl
+ FormDataList.cpp
+ FormDataList.h
+ HTMLAllCollection.cpp
+ HTMLAllCollection.h
+ HTMLAllCollection.idl
+ HTMLAnchorElement.cpp
+ HTMLAnchorElement.h
+ HTMLAnchorElement.idl
+ HTMLAppletElement.cpp
+ HTMLAppletElement.h
+ HTMLAppletElement.idl
+ HTMLAreaElement.cpp
+ HTMLAreaElement.h
+ HTMLAreaElement.idl
+ HTMLAttributeNames.in
+ HTMLAudioElement.cpp
+ HTMLAudioElement.h
+ HTMLAudioElement.idl
+ HTMLBaseElement.cpp
+ HTMLBaseElement.h
+ HTMLBaseElement.idl
+ HTMLBaseFontElement.cpp
+ HTMLBaseFontElement.h
+ HTMLBaseFontElement.idl
+ HTMLBlockquoteElement.cpp
+ HTMLBlockquoteElement.h
+ HTMLBlockquoteElement.idl
+ HTMLBodyElement.cpp
+ HTMLBodyElement.h
+ HTMLBodyElement.idl
+ HTMLBRElement.cpp
+ HTMLBRElement.h
+ HTMLBRElement.idl
+ HTMLButtonElement.cpp
+ HTMLButtonElement.h
+ HTMLButtonElement.idl
+ HTMLCanvasElement.cpp
+ HTMLCanvasElement.h
+ HTMLCanvasElement.idl
+ HTMLCollection.cpp
+ HTMLCollection.h
+ HTMLCollection.idl
+ HTMLDataGridCellElement.cpp
+ HTMLDataGridCellElement.h
+ HTMLDataGridCellElement.idl
+ HTMLDataGridColElement.cpp
+ HTMLDataGridColElement.h
+ HTMLDataGridColElement.idl
+ HTMLDataGridElement.cpp
+ HTMLDataGridElement.h
+ HTMLDataGridElement.idl
+ HTMLDataGridRowElement.cpp
+ HTMLDataGridRowElement.h
+ HTMLDataGridRowElement.idl
+ HTMLDataListElement.cpp
+ HTMLDataListElement.h
+ HTMLDataListElement.idl
+ HTMLDirectoryElement.cpp
+ HTMLDirectoryElement.h
+ HTMLDirectoryElement.idl
+ HTMLDivElement.cpp
+ HTMLDivElement.h
+ HTMLDivElement.idl
+ HTMLDListElement.cpp
+ HTMLDListElement.h
+ HTMLDListElement.idl
+ HTMLDocument.cpp
+ HTMLDocument.h
+ HTMLDocument.idl
+ HTMLElement.cpp
+ HTMLElement.h
+ HTMLElement.idl
+ HTMLElementsAllInOne.cpp
+ HTMLEmbedElement.cpp
+ HTMLEmbedElement.h
+ HTMLEmbedElement.idl
+ HTMLEntityNames.gperf
+ HTMLFieldSetElement.cpp
+ HTMLFieldSetElement.h
+ HTMLFieldSetElement.idl
+ HTMLFontElement.cpp
+ HTMLFontElement.h
+ HTMLFontElement.idl
+ HTMLFormCollection.cpp
+ HTMLFormCollection.h
+ HTMLFormControlElement.cpp
+ HTMLFormControlElement.h
+ HTMLFormElement.cpp
+ HTMLFormElement.h
+ HTMLFormElement.idl
+ HTMLFrameElementBase.cpp
+ HTMLFrameElementBase.h
+ HTMLFrameElement.cpp
+ HTMLFrameElement.h
+ HTMLFrameElement.idl
+ HTMLFrameOwnerElement.cpp
+ HTMLFrameOwnerElement.h
+ HTMLFrameSetElement.cpp
+ HTMLFrameSetElement.h
+ HTMLFrameSetElement.idl
+ HTMLHeadElement.cpp
+ HTMLHeadElement.h
+ HTMLHeadElement.idl
+ HTMLHeadingElement.cpp
+ HTMLHeadingElement.h
+ HTMLHeadingElement.idl
+ HTMLHRElement.cpp
+ HTMLHRElement.h
+ HTMLHRElement.idl
+ HTMLHtmlElement.cpp
+ HTMLHtmlElement.h
+ HTMLHtmlElement.idl
+ HTMLIFrameElement.cpp
+ HTMLIFrameElement.h
+ HTMLIFrameElement.idl
+ HTMLImageElement.cpp
+ HTMLImageElement.h
+ HTMLImageElement.idl
+ HTMLImageLoader.cpp
+ HTMLImageLoader.h
+ HTMLInputElement.cpp
+ HTMLInputElement.h
+ HTMLInputElement.idl
+ HTMLIsIndexElement.cpp
+ HTMLIsIndexElement.h
+ HTMLIsIndexElement.idl
+ HTMLKeygenElement.cpp
+ HTMLKeygenElement.h
+ HTMLLabelElement.cpp
+ HTMLLabelElement.h
+ HTMLLabelElement.idl
+ HTMLLegendElement.cpp
+ HTMLLegendElement.h
+ HTMLLegendElement.idl
+ HTMLLIElement.cpp
+ HTMLLIElement.h
+ HTMLLIElement.idl
+ HTMLLinkElement.cpp
+ HTMLLinkElement.h
+ HTMLLinkElement.idl
+ HTMLMapElement.cpp
+ HTMLMapElement.h
+ HTMLMapElement.idl
+ HTMLMarqueeElement.cpp
+ HTMLMarqueeElement.h
+ HTMLMarqueeElement.idl
+ HTMLMediaElement.cpp
+ HTMLMediaElement.h
+ HTMLMediaElement.idl
+ HTMLMenuElement.cpp
+ HTMLMenuElement.h
+ HTMLMenuElement.idl
+ HTMLMetaElement.cpp
+ HTMLMetaElement.h
+ HTMLMetaElement.idl
+ HTMLModElement.cpp
+ HTMLModElement.h
+ HTMLModElement.idl
+ HTMLNameCollection.cpp
+ HTMLNameCollection.h
+ HTMLNoScriptElement.cpp
+ HTMLNoScriptElement.h
+ HTMLObjectElement.cpp
+ HTMLObjectElement.h
+ HTMLObjectElement.idl
+ HTMLOListElement.cpp
+ HTMLOListElement.h
+ HTMLOListElement.idl
+ HTMLOptGroupElement.cpp
+ HTMLOptGroupElement.h
+ HTMLOptGroupElement.idl
+ HTMLOptionElement.cpp
+ HTMLOptionElement.h
+ HTMLOptionElement.idl
+ HTMLOptionsCollection.cpp
+ HTMLOptionsCollection.h
+ HTMLOptionsCollection.idl
+ HTMLParagraphElement.cpp
+ HTMLParagraphElement.h
+ HTMLParagraphElement.idl
+ HTMLParamElement.cpp
+ HTMLParamElement.h
+ HTMLParamElement.idl
+ HTMLParser.cpp
+ HTMLParserErrorCodes.cpp
+ HTMLParserErrorCodes.h
+ HTMLParser.h
+ HTMLParserQuirks.h
+ HTMLPlugInElement.cpp
+ HTMLPlugInElement.h
+ HTMLPlugInImageElement.cpp
+ HTMLPlugInImageElement.h
+ HTMLPreElement.cpp
+ HTMLPreElement.h
+ HTMLPreElement.idl
+ HTMLQuoteElement.cpp
+ HTMLQuoteElement.h
+ HTMLQuoteElement.idl
+ HTMLScriptElement.cpp
+ HTMLScriptElement.h
+ HTMLScriptElement.idl
+ HTMLSelectElement.cpp
+ HTMLSelectElement.h
+ HTMLSelectElement.idl
+ HTMLSourceElement.cpp
+ HTMLSourceElement.h
+ HTMLSourceElement.idl
+ HTMLStyleElement.cpp
+ HTMLStyleElement.h
+ HTMLStyleElement.idl
+ HTMLTableCaptionElement.cpp
+ HTMLTableCaptionElement.h
+ HTMLTableCaptionElement.idl
+ HTMLTableCellElement.cpp
+ HTMLTableCellElement.h
+ HTMLTableCellElement.idl
+ HTMLTableColElement.cpp
+ HTMLTableColElement.h
+ HTMLTableColElement.idl
+ HTMLTableElement.cpp
+ HTMLTableElement.h
+ HTMLTableElement.idl
+ HTMLTablePartElement.cpp
+ HTMLTablePartElement.h
+ HTMLTableRowElement.cpp
+ HTMLTableRowElement.h
+ HTMLTableRowElement.idl
+ HTMLTableRowsCollection.cpp
+ HTMLTableRowsCollection.h
+ HTMLTableSectionElement.cpp
+ HTMLTableSectionElement.h
+ HTMLTableSectionElement.idl
+ HTMLTagNames.in
+ HTMLTextAreaElement.cpp
+ HTMLTextAreaElement.h
+ HTMLTextAreaElement.idl
+ HTMLTitleElement.cpp
+ HTMLTitleElement.h
+ HTMLTitleElement.idl
+ HTMLTokenizer.cpp
+ HTMLTokenizer.h
+ HTMLUListElement.cpp
+ HTMLUListElement.h
+ HTMLUListElement.idl
+ HTMLVideoElement.cpp
+ HTMLVideoElement.h
+ HTMLVideoElement.idl
+ HTMLViewSourceDocument.cpp
+ HTMLViewSourceDocument.h
+ ImageData.cpp
+ ImageData.h
+ ImageData.idl
+ MediaError.h
+ MediaError.idl
+ PreloadScanner.cpp
+ PreloadScanner.h
+ TextMetrics.h
+ TextMetrics.idl
+ TimeRanges.cpp
+ TimeRanges.h
+ TimeRanges.idl
+ ValidityState.cpp
+ ValidityState.h
+ ValidityState.idl
+ VoidCallback.h
+ VoidCallback.idl
+2 Info.plist
+ inspector/
+0 ConsoleMessage.cpp
+ ConsoleMessage.h
+ front-end/
+0 AbstractTimelinePanel.js
+ BottomUpProfileDataGridTree.js
+ Breakpoint.js
+ BreakpointsSidebarPane.js
+ Callback.js
+ CallStackSidebarPane.js
+ ChangesView.js
+ Color.js
+ ConsoleView.js
+ CookieItemsView.js
+ Database.js
+ DatabaseQueryView.js
+ DatabaseTableView.js
+ DataGrid.js
+ DOMAgent.js
+ DOMStorageDataGrid.js
+ DOMStorageItemsView.js
+ DOMStorage.js
+ Drawer.js
+ ElementsPanel.js
+ ElementsTreeOutline.js
+ EventListenersSidebarPane.js
+ FontView.js
+ Images/
+0 back.png
+ checker.png
+ clearConsoleButtonGlyph.png
+ closeButtons.png
+ consoleButtonGlyph.png
+ cookie.png
+ database.png
+ databaseTable.png
+ debuggerContinue.png
+ debuggerPause.png
+ debuggerStepInto.png
+ debuggerStepOut.png
+ debuggerStepOver.png
+ disclosureTriangleSmallDownBlack.png
+ disclosureTriangleSmallDown.png
+ disclosureTriangleSmallDownWhite.png
+ disclosureTriangleSmallRightBlack.png
+ disclosureTriangleSmallRightDownBlack.png
+ disclosureTriangleSmallRightDown.png
+ disclosureTriangleSmallRightDownWhite.png
+ disclosureTriangleSmallRight.png
+ disclosureTriangleSmallRightWhite.png
+ dockButtonGlyph.png
+ elementsIcon.png
+ enableOutlineButtonGlyph.png
+ enableSolidButtonGlyph.png
+ errorIcon.png
+ errorMediumIcon.png
+ errorRedDot.png
+ excludeButtonGlyph.png
+ focusButtonGlyph.png
+ forward.png
+ glossyHeader.png
+ glossyHeaderPressed.png
+ glossyHeaderSelected.png
+ glossyHeaderSelectedPressed.png
+ goArrow.png
+ graphLabelCalloutLeft.png
+ graphLabelCalloutRight.png
+ grayConnectorPoint.png
+ largerResourcesButtonGlyph.png
+ localStorage.png
+ nodeSearchButtonGlyph.png
+ paneBottomGrowActive.png
+ paneBottomGrow.png
+ paneGrowHandleLine.png
+ paneSettingsButtons.png
+ pauseOnExceptionButtonGlyph.png
+ percentButtonGlyph.png
+ profileGroupIcon.png
+ profileIcon.png
+ profilesIcon.png
+ profileSmallIcon.png
+ profilesSilhouette.png
+ radioDot.png
+ recordButtonGlyph.png
+ recordToggledButtonGlyph.png
+ reloadButtonGlyph.png
+ resourceCSSIcon.png
+ resourceDocumentIcon.png
+ resourceDocumentIconSmall.png
+ resourceJSIcon.png
+ resourcePlainIcon.png
+ resourcePlainIconSmall.png
+ resourcesIcon.png
+ resourcesSilhouette.png
+ resourcesSizeGraphIcon.png
+ resourcesTimeGraphIcon.png
+ scriptsIcon.png
+ scriptsSilhouette.png
+ searchSmallBlue.png
+ searchSmallBrightBlue.png
+ searchSmallGray.png
+ searchSmallWhite.png
+ segmentEnd.png
+ segmentHoverEnd.png
+ segmentHover.png
+ segment.png
+ segmentSelectedEnd.png
+ segmentSelected.png
+ sessionStorage.png
+ splitviewDimple.png
+ splitviewDividerBackground.png
+ statusbarBackground.png
+ statusbarBottomBackground.png
+ statusbarButtons.png
+ statusbarMenuButton.png
+ statusbarMenuButtonSelected.png
+ statusbarResizerHorizontal.png
+ statusbarResizerVertical.png
+ storageIcon.png
+ successGreenDot.png
+ timelineBarBlue.png
+ timelineBarGray.png
+ timelineBarGreen.png
+ timelineBarOrange.png
+ timelineBarPurple.png
+ timelineBarRed.png
+ timelineBarYellow.png
+ timelineCheckmarks.png
+ timelineDots.png
+ timelineHollowPillBlue.png
+ timelineHollowPillGray.png
+ timelineHollowPillGreen.png
+ timelineHollowPillOrange.png
+ timelineHollowPillPurple.png
+ timelineHollowPillRed.png
+ timelineHollowPillYellow.png
+ timelineIcon.png
+ timelinePillBlue.png
+ timelinePillGray.png
+ timelinePillGreen.png
+ timelinePillOrange.png
+ timelinePillPurple.png
+ timelinePillRed.png
+ timelinePillYellow.png
+ tipBalloonBottom.png
+ tipBalloon.png
+ tipIcon.png
+ tipIconPressed.png
+ toolbarItemSelected.png
+ treeDownTriangleBlack.png
+ treeDownTriangleWhite.png
+ treeRightTriangleBlack.png
+ treeRightTriangleWhite.png
+ treeUpTriangleBlack.png
+ treeUpTriangleWhite.png
+ undockButtonGlyph.png
+ userInputIcon.png
+ userInputPreviousIcon.png
+ userInputResultIcon.png
+ warningIcon.png
+ warningMediumIcon.png
+ warningOrangeDot.png
+ warningsErrors.png
+ whiteConnectorPoint.png
+2 ImageView.js
+ InjectedScriptAccess.js
+ InjectedScript.js
+ InspectorControllerStub.js
+ inspector.css
+ inspector.html
+ inspector.js
+ inspectorSyntaxHighlight.css
+ KeyboardShortcut.js
+ MetricsSidebarPane.js
+ Object.js
+ ObjectPropertiesSection.js
+ ObjectProxy.js
+ PanelEnablerView.js
+ Panel.js
+ Placard.js
+ Popup.js
+ ProfileDataGridTree.js
+ ProfilesPanel.js
+ ProfileView.js
+ PropertiesSection.js
+ PropertiesSidebarPane.js
+ ResourceCategory.js
+ Resource.js
+ ResourcesPanel.js
+ ResourceView.js
+ ScopeChainSidebarPane.js
+ Script.js
+ ScriptsPanel.js
+ ScriptView.js
+ SidebarPane.js
+ SidebarTreeElement.js
+ SourceFrame.js
+ SourceView.js
+ StatusBarButton.js
+ StoragePanel.js
+ StylesSidebarPane.js
+ SummaryBar.js
+ TestController.js
+ TextPrompt.js
+ TimelineAgent.js
+ TimelinePanel.js
+ TopDownProfileDataGridTree.js
+ treeoutline.js
+ utilities.js
+ View.js
+ WatchExpressionsSidebarPane.js
+ WebKit.qrc
+2 InspectorBackend.cpp
+ InspectorBackend.h
+ InspectorBackend.idl
+ InspectorClient.h
+ InspectorController.cpp
+ InspectorController.h
+ InspectorDatabaseResource.cpp
+ InspectorDatabaseResource.h
+ InspectorDOMAgent.cpp
+ InspectorDOMAgent.h
+ InspectorDOMStorageResource.cpp
+ InspectorDOMStorageResource.h
+ InspectorFrontend.cpp
+ InspectorFrontend.h
+ InspectorResource.cpp
+ InspectorResource.h
+ InspectorTimelineAgent.cpp
+ InspectorTimelineAgent.h
+ JavaScriptCallFrame.cpp
+ JavaScriptCallFrame.h
+ JavaScriptCallFrame.idl
+ JavaScriptDebugListener.h
+ JavaScriptDebugServer.cpp
+ JavaScriptDebugServer.h
+ JavaScriptProfile.cpp
+ JavaScriptProfile.h
+ JavaScriptProfileNode.cpp
+ JavaScriptProfileNode.h
+ TimelineRecordFactory.cpp
+ TimelineRecordFactory.h
+2 LICENSE-APPLE
+ LICENSE-LGPL-2
+0 .1
+2 loader/
+0 appcache/
+0 ApplicationCache.cpp
+ ApplicationCacheGroup.cpp
+ ApplicationCacheGroup.h
+ ApplicationCache.h
+ ApplicationCacheHost.cpp
+ ApplicationCacheHost.h
+ ApplicationCacheResource.cpp
+ ApplicationCacheResource.h
+ ApplicationCacheStorage.cpp
+ ApplicationCacheStorage.h
+ DOMApplicationCache.cpp
+ DOMApplicationCache.h
+ DOMApplicationCache.idl
+ ManifestParser.cpp
+ ManifestParser.h
+2 archive/
+0 ArchiveFactory.cpp
+ ArchiveFactory.h
+ Archive.h
+ ArchiveResourceCollection.cpp
+ ArchiveResourceCollection.h
+ ArchiveResource.cpp
+ ArchiveResource.h
+ cf/
+0 LegacyWebArchive.cpp
+ LegacyWebArchive.h
+ LegacyWebArchiveMac.mm
+3 Cache.cpp
+ CachedCSSStyleSheet.cpp
+ CachedCSSStyleSheet.h
+ CachedFont.cpp
+ CachedFont.h
+ CachedImage.cpp
+ CachedImage.h
+ CachedResourceClient.h
+ CachedResourceClientWalker.cpp
+ CachedResourceClientWalker.h
+ CachedResource.cpp
+ CachedResource.h
+ CachedResourceHandle.cpp
+ CachedResourceHandle.h
+ CachedScript.cpp
+ CachedScript.h
+ CachedXBLDocument.cpp
+ CachedXBLDocument.h
+ CachedXSLStyleSheet.cpp
+ CachedXSLStyleSheet.h
+ Cache.h
+ CachePolicy.h
+ cf/
+0 ResourceLoaderCFNet.cpp
+2 CrossOriginAccessControl.cpp
+ CrossOriginAccessControl.h
+ CrossOriginPreflightResultCache.cpp
+ CrossOriginPreflightResultCache.h
+ DocLoader.cpp
+ DocLoader.h
+ DocumentLoader.cpp
+ DocumentLoader.h
+ DocumentThreadableLoader.cpp
+ DocumentThreadableLoader.h
+ EmptyClients.h
+ FormState.cpp
+ FormState.h
+ FrameLoaderClient.h
+ FrameLoader.cpp
+ FrameLoader.h
+ FrameLoaderTypes.h
+ FTPDirectoryDocument.cpp
+ FTPDirectoryDocument.h
+ FTPDirectoryParser.cpp
+ FTPDirectoryParser.h
+ HistoryController.cpp
+ HistoryController.h
+ icon/
+0 IconDatabaseClient.h
+ IconDatabase.cpp
+ IconDatabase.h
+ IconDatabaseNone.cpp
+ IconFetcher.cpp
+ IconFetcher.h
+ IconLoader.cpp
+ IconLoader.h
+ IconRecord.cpp
+ IconRecord.h
+ PageURLRecord.cpp
+ PageURLRecord.h
+2 ImageDocument.cpp
+ ImageDocument.h
+ ImageLoader.cpp
+ ImageLoader.h
+ loader.cpp
+ loader.h
+ MainResourceLoader.cpp
+ MainResourceLoader.h
+ MediaDocument.cpp
+ MediaDocument.h
+ NavigationAction.cpp
+ NavigationAction.h
+ NetscapePlugInStreamLoader.cpp
+ NetscapePlugInStreamLoader.h
+ PlaceholderDocument.cpp
+ PlaceholderDocument.h
+ PluginDocument.cpp
+ PluginDocument.h
+ PolicyCallback.cpp
+ PolicyCallback.h
+ PolicyChecker.cpp
+ PolicyChecker.h
+ ProgressTracker.cpp
+ ProgressTracker.h
+ RedirectScheduler.cpp
+ RedirectScheduler.h
+ Request.cpp
+ Request.h
+ ResourceLoader.cpp
+ ResourceLoader.h
+ ResourceLoadNotifier.cpp
+ ResourceLoadNotifier.h
+ SubresourceLoaderClient.h
+ SubresourceLoader.cpp
+ SubresourceLoader.h
+ SubstituteData.h
+ SubstituteResource.h
+ TextDocument.cpp
+ TextDocument.h
+ TextResourceDecoder.cpp
+ TextResourceDecoder.h
+ ThreadableLoaderClient.h
+ ThreadableLoaderClientWrapper.h
+ ThreadableLoader.cpp
+ ThreadableLoader.h
+ WorkerThreadableLoader.cpp
+ WorkerThreadableLoader.h
+2 make-generated-sources.sh
+ mathml/
+0 MathMLElement.cpp
+ MathMLElement.h
+ MathMLInlineContainerElement.cpp
+ MathMLInlineContainerElement.h
+ MathMLMathElement.cpp
+ MathMLMathElement.h
+ mathtags.in
+2 move-js-headers.sh
+ notifications/
+0 NotificationCenter.cpp
+ NotificationCenter.h
+ NotificationCenter.idl
+ NotificationContents.h
+ Notification.cpp
+ Notification.h
+ Notification.idl
+ NotificationPresenter.h
+2 page/
+0 AbstractView.idl
+ android/
+0 DragControllerAndroid.cpp
+ EventHandlerAndroid.cpp
+ InspectorControllerAndroid.cpp
+2 animation/
+0 AnimationBase.cpp
+ AnimationBase.h
+ AnimationController.cpp
+ AnimationController.h
+ AnimationControllerPrivate.h
+ CompositeAnimation.cpp
+ CompositeAnimation.h
+ ImplicitAnimation.cpp
+ ImplicitAnimation.h
+ KeyframeAnimation.cpp
+ KeyframeAnimation.h
+2 BarInfo.cpp
+ BarInfo.h
+ BarInfo.idl
+ ChromeClient.h
+ Chrome.cpp
+ Chrome.h
+ Console.cpp
+ Console.h
+ Console.idl
+ ContextMenuClient.h
+ ContextMenuController.cpp
+ ContextMenuController.h
+ Coordinates.h
+ Coordinates.idl
+ DOMSelection.cpp
+ DOMSelection.h
+ DOMSelection.idl
+ DOMTimer.cpp
+ DOMTimer.h
+ DOMWindow.cpp
+ DOMWindow.h
+ DOMWindow.idl
+ DragActions.h
+ DragClient.h
+ DragController.cpp
+ DragController.h
+ EditorClient.h
+ EventHandler.cpp
+ EventHandler.h
+ EventSource.cpp
+ EventSource.h
+ EventSource.idl
+ FocusController.cpp
+ FocusController.h
+ FocusDirection.h
+ Frame.cpp
+ Frame.h
+ FrameLoadRequest.h
+ FrameTree.cpp
+ FrameTree.h
+ FrameView.cpp
+ FrameView.h
+ Geolocation.cpp
+ Geolocation.h
+ Geolocation.idl
+ Geoposition.h
+ Geoposition.idl
+ HaltablePlugin.h
+ History.cpp
+ History.h
+ History.idl
+ Location.cpp
+ Location.h
+ Location.idl
+ MouseEventWithHitTestResults.cpp
+ MouseEventWithHitTestResults.h
+ NavigatorBase.cpp
+ NavigatorBase.h
+ Navigator.cpp
+ Navigator.h
+ Navigator.idl
+ OriginAccessEntry.cpp
+ OriginAccessEntry.h
+ Page.cpp
+ PageGroup.cpp
+ PageGroup.h
+ PageGroupLoadDeferrer.cpp
+ PageGroupLoadDeferrer.h
+ Page.h
+ PluginHalterClient.h
+ PluginHalter.cpp
+ PluginHalter.h
+ PositionCallback.h
+ PositionErrorCallback.h
+ PositionError.h
+ PositionError.idl
+ PositionOptions.h
+ PrintContext.cpp
+ PrintContext.h
+ qt/
+0 DragControllerQt.cpp
+ EventHandlerQt.cpp
+ FrameQt.cpp
+2 Screen.cpp
+ Screen.h
+ Screen.idl
+ SecurityOrigin.cpp
+ SecurityOrigin.h
+ SecurityOriginHash.h
+ Settings.cpp
+ Settings.h
+ UserContentURLPattern.cpp
+ UserContentURLPattern.h
+ UserScript.h
+ UserScriptTypes.h
+ UserStyleSheet.h
+ UserStyleSheetTypes.h
+ WebKitPoint.h
+ WebKitPoint.idl
+ win/
+ WindowFeatures.cpp
+ WindowFeatures.h
+ win/DragControllerWin.cpp
+ win/EventHandlerWin.cpp
+ win/FrameCairoWin.cpp
+ win/FrameCGWin.cpp
+ win/FrameWin.cpp
+ win/FrameWin.h
+ win/PageWin.cpp
+ WorkerNavigator.cpp
+ WorkerNavigator.h
+ WorkerNavigator.idl
+ XSSAuditor.cpp
+ XSSAuditor.h
+2 platform/
+0 android/
+0 ClipboardAndroid.cpp
+ ClipboardAndroid.h
+ CursorAndroid.cpp
+ DragDataAndroid.cpp
+ EventLoopAndroid.cpp
+ FileChooserAndroid.cpp
+ FileSystemAndroid.cpp
+ KeyboardCodes.h
+ KeyEventAndroid.cpp
+ LocalizedStringsAndroid.cpp
+ PopupMenuAndroid.cpp
+ RenderThemeAndroid.cpp
+ RenderThemeAndroid.h
+ ScreenAndroid.cpp
+ ScrollViewAndroid.cpp
+ SearchPopupMenuAndroid.cpp
+ SystemTimeAndroid.cpp
+ TemporaryLinkStubs.cpp
+ WidgetAndroid.cpp
+2 animation/
+0 Animation.cpp
+ Animation.h
+ AnimationList.cpp
+ AnimationList.h
+ TimingFunction.h
+2 Arena.cpp
+ Arena.h
+ AutodrainedPool.h
+ ColorData.gperf
+ ContentType.cpp
+ ContentType.h
+ ContextMenu.cpp
+ ContextMenu.h
+ ContextMenuItem.h
+ Cookie.h
+ CookieJar.h
+ CrossThreadCopier.cpp
+ CrossThreadCopier.h
+ Cursor.h
+ DeprecatedPtrList.h
+ DeprecatedPtrListImpl.cpp
+ DeprecatedPtrListImpl.h
+ DragData.cpp
+ DragData.h
+ DragImage.cpp
+ DragImage.h
+ EventLoop.h
+ FileChooser.cpp
+ FileChooser.h
+ FileSystem.h
+ FloatConversion.h
+ GeolocationService.cpp
+ GeolocationService.h
+ graphics/
+0 BitmapImage.cpp
+ BitmapImage.h
+ Color.cpp
+ Color.h
+ DashArray.h
+ filters/
+0 FEBlend.cpp
+ FEBlend.h
+ FEColorMatrix.cpp
+ FEColorMatrix.h
+ FEComponentTransfer.cpp
+ FEComponentTransfer.h
+ FEComposite.cpp
+ FEComposite.h
+ FEGaussianBlur.cpp
+ FEGaussianBlur.h
+ FilterEffect.cpp
+ FilterEffect.h
+ Filter.h
+ SourceAlpha.cpp
+ SourceAlpha.h
+ SourceGraphic.cpp
+ SourceGraphic.h
+2 FloatPoint3D.cpp
+ FloatPoint3D.h
+ FloatPoint.cpp
+ FloatPoint.h
+ FloatQuad.cpp
+ FloatQuad.h
+ FloatRect.cpp
+ FloatRect.h
+ FloatSize.cpp
+ FloatSize.h
+ FontCache.cpp
+ FontCache.h
+ Font.cpp
+ FontData.cpp
+ FontData.h
+ FontDescription.cpp
+ FontDescription.h
+ FontFallbackList.cpp
+ FontFallbackList.h
+ FontFamily.cpp
+ FontFamily.h
+ FontFastPath.cpp
+ Font.h
+ FontRenderingMode.h
+ FontSelector.h
+ FontSmoothingMode.h
+ FontTraitsMask.h
+ GeneratedImage.cpp
+ GeneratedImage.h
+ Generator.h
+ GlyphBuffer.h
+ GlyphPageTreeNode.cpp
+ GlyphPageTreeNode.h
+ GlyphWidthMap.cpp
+ GlyphWidthMap.h
+ Gradient.cpp
+ Gradient.h
+ GraphicsContext3D.h
+ GraphicsContext.cpp
+ GraphicsContext.h
+ GraphicsContextPrivate.h
+ GraphicsLayerClient.h
+ GraphicsLayer.cpp
+ GraphicsLayer.h
+ GraphicsTypes.cpp
+ GraphicsTypes.h
+ Icon.h
+ ImageBuffer.cpp
+ ImageBuffer.h
+ Image.cpp
+ Image.h
+ ImageObserver.h
+ ImageSource.cpp
+ ImageSource.h
+ IntPoint.h
+ IntRect.cpp
+ IntRect.h
+ IntSize.h
+ IntSizeHash.h
+ MediaPlayer.cpp
+ MediaPlayer.h
+ MediaPlayerPrivate.h
+ opentype/
+0 OpenTypeUtilities.cpp
+ OpenTypeUtilities.h
+2 Path.cpp
+ Path.h
+ PathTraversalState.cpp
+ PathTraversalState.h
+ Pattern.cpp
+ Pattern.h
+ Pen.cpp
+ Pen.h
+ qt/
+0 ColorQt.cpp
+ FloatPointQt.cpp
+ FloatRectQt.cpp
+ FontCacheQt.cpp
+ FontCustomPlatformData.cpp
+ FontCustomPlatformData.h
+ FontFallbackListQt.cpp
+ FontPlatformData.h
+ FontPlatformDataQt.cpp
+ FontQt43.cpp
+ FontQt.cpp
+ GlyphPageTreeNodeQt.cpp
+ GradientQt.cpp
+ GraphicsContextQt.cpp
+ IconQt.cpp
+ ImageBufferData.h
+ ImageBufferQt.cpp
+ ImageDecoderQt.cpp
+ ImageDecoderQt.h
+ ImageQt.cpp
+ IntPointQt.cpp
+ IntRectQt.cpp
+ IntSizeQt.cpp
+ MediaPlayerPrivatePhonon.cpp
+ MediaPlayerPrivatePhonon.h
+ PathQt.cpp
+ PatternQt.cpp
+ SimpleFontDataQt.cpp
+ StillImageQt.cpp
+ StillImageQt.h
+ TransformationMatrixQt.cpp
+2 SegmentedFontData.cpp
+ SegmentedFontData.h
+ SimpleFontData.cpp
+ SimpleFontData.h
+ StringTruncator.cpp
+ StringTruncator.h
+ StrokeStyleApplier.h
+ TextRenderingMode.h
+ TextRun.h
+ transforms/
+0 IdentityTransformOperation.h
+ Matrix3DTransformOperation.cpp
+ Matrix3DTransformOperation.h
+ MatrixTransformOperation.cpp
+ MatrixTransformOperation.h
+ PerspectiveTransformOperation.cpp
+ PerspectiveTransformOperation.h
+ RotateTransformOperation.cpp
+ RotateTransformOperation.h
+ ScaleTransformOperation.cpp
+ ScaleTransformOperation.h
+ SkewTransformOperation.cpp
+ SkewTransformOperation.h
+ TransformationMatrix.cpp
+ TransformationMatrix.h
+ TransformOperation.h
+ TransformOperations.cpp
+ TransformOperations.h
+ TranslateTransformOperation.cpp
+ TranslateTransformOperation.h
+2 UnitBezier.h
+ WidthIterator.cpp
+ WidthIterator.h
+2 HostWindow.h
+ image-decoders/
+0 cairo/
+0 ImageDecoderCairo.cpp
+2 ImageDecoder.cpp
+ ImageDecoder.h
+ qt/
+0 RGBA32BufferQt.cpp
+2 wx/
+0 ImageDecoderWx.cpp
+3 KeyboardCodes.h
+ KURL.cpp
+ KURLGoogle.cpp
+ KURLGooglePrivate.h
+ KURL.h
+ KURLHash.h
+ Language.h
+ LengthBox.h
+ Length.cpp
+ Length.h
+ LengthSize.h
+ LinkHash.cpp
+ LinkHash.h
+ LocalizedStrings.h
+ Logging.cpp
+ Logging.h
+ mac/
+0 AutodrainedPool.mm
+ BlockExceptions.h
+ BlockExceptions.mm
+ ClipboardMac.h
+ ClipboardMac.mm
+ ContextMenuItemMac.mm
+ ContextMenuMac.mm
+ CookieJar.mm
+ CursorMac.mm
+ DragDataMac.mm
+ DragImageMac.mm
+ EventLoopMac.mm
+ FileChooserMac.mm
+ FileSystemMac.mm
+ FoundationExtras.h
+ GeolocationServiceMac.h
+ GeolocationServiceMac.mm
+ KeyEventMac.mm
+ KURLMac.mm
+ Language.mm
+ LocalCurrentGraphicsContext.h
+ LocalCurrentGraphicsContext.mm
+ LocalizedStringsMac.mm
+ LoggingMac.mm
+ MIMETypeRegistryMac.mm
+ PasteboardHelper.h
+ PasteboardMac.mm
+ PlatformMouseEventMac.mm
+ PlatformScreenMac.mm
+ PopupMenuMac.mm
+ PurgeableBufferMac.cpp
+ RuntimeApplicationChecks.h
+ RuntimeApplicationChecks.mm
+ SchedulePairMac.mm
+ ScrollbarThemeMac.h
+ ScrollbarThemeMac.mm
+ ScrollViewMac.mm
+ SearchPopupMenuMac.mm
+ SharedBufferMac.mm
+ SharedTimerMac.mm
+ SoftLinking.h
+ SoundMac.mm
+ SSLKeyGeneratorMac.mm
+ SuddenTermination.mm
+ SystemTimeMac.cpp
+ ThemeMac.h
+ ThemeMac.mm
+ ThreadCheck.mm
+ WebCoreKeyGenerator.h
+ WebCoreKeyGenerator.m
+ WebCoreNSStringExtras.h
+ WebCoreNSStringExtras.mm
+ WebCoreObjCExtras.h
+ WebCoreObjCExtras.mm
+ WebCoreSystemInterface.h
+ WebCoreSystemInterface.mm
+ WebCoreView.h
+ WebCoreView.m
+ WebFontCache.h
+ WebFontCache.mm
+ WheelEventMac.mm
+ WidgetMac.mm
+2 MIMETypeRegistry.cpp
+ MIMETypeRegistry.h
+ mock/
+0 GeolocationServiceMock.cpp
+ GeolocationServiceMock.h
+2 network/
+0 AuthenticationChallengeBase.cpp
+ AuthenticationChallengeBase.h
+ Credential.cpp
+ Credential.h
+ CredentialStorage.cpp
+ CredentialStorage.h
+ DNS.h
+ FormDataBuilder.cpp
+ FormDataBuilder.h
+ FormData.cpp
+ FormData.h
+ HTTPHeaderMap.cpp
+ HTTPHeaderMap.h
+ HTTPParsers.cpp
+ HTTPParsers.h
+ NetworkStateNotifier.cpp
+ NetworkStateNotifier.h
+ ProtectionSpace.cpp
+ ProtectionSpace.h
+ ProtectionSpaceHash.h
+ qt/
+0 AuthenticationChallenge.h
+ DnsPrefetchHelper.cpp
+ DnsPrefetchHelper.h
+ QNetworkReplyHandler.cpp
+ QNetworkReplyHandler.h
+ ResourceError.h
+ ResourceHandleQt.cpp
+ ResourceRequest.h
+ ResourceRequestQt.cpp
+ ResourceResponse.h
+ SocketStreamError.h
+ SocketStreamHandle.h
+ SocketStreamHandleSoup.cpp
+2 ResourceErrorBase.cpp
+ ResourceErrorBase.h
+ ResourceHandleClient.h
+ ResourceHandle.cpp
+ ResourceHandle.h
+ ResourceHandleInternal.h
+ ResourceRequestBase.cpp
+ ResourceRequestBase.h
+ ResourceResponseBase.cpp
+ ResourceResponseBase.h
+ SocketStreamErrorBase.cpp
+ SocketStreamErrorBase.h
+ SocketStreamHandleBase.cpp
+ SocketStreamHandleBase.h
+ SocketStreamHandleClient.h
+2 NotImplemented.h
+ Pasteboard.h
+ PlatformKeyboardEvent.h
+ PlatformMenuDescription.h
+ PlatformMouseEvent.h
+ PlatformScreen.h
+ PlatformWheelEvent.h
+ PopupMenuClient.h
+ PopupMenu.h
+ PopupMenuStyle.h
+ posix/
+0 FileSystemPOSIX.cpp
+2 PurgeableBuffer.h
+ qt/
+0 ClipboardQt.cpp
+ ClipboardQt.h
+ ContextMenuItemQt.cpp
+ ContextMenuQt.cpp
+ CookieJarQt.cpp
+ CursorQt.cpp
+ DragDataQt.cpp
+ DragImageQt.cpp
+ EventLoopQt.cpp
+ FileChooserQt.cpp
+ FileSystemQt.cpp
+ KURLQt.cpp
+ Localizations.cpp
+ LoggingQt.cpp
+ MIMETypeRegistryQt.cpp
+ PasteboardQt.cpp
+ PlatformKeyboardEventQt.cpp
+ PlatformMouseEventQt.cpp
+ PlatformScreenQt.cpp
+ PopupMenuQt.cpp
+ QWebPageClient.h
+ QWebPopup.cpp
+ QWebPopup.h
+ RenderThemeQt.cpp
+ RenderThemeQt.h
+ ScreenQt.cpp
+ ScrollbarQt.cpp
+ ScrollbarThemeQt.cpp
+ ScrollbarThemeQt.h
+ ScrollViewQt.cpp
+ SearchPopupMenuQt.cpp
+ SharedBufferQt.cpp
+ SharedTimerQt.cpp
+ SoundQt.cpp
+ TemporaryLinkStubs.cpp
+ WheelEventQt.cpp
+ WidgetQt.cpp
+2 RunLoopTimer.h
+ ScrollbarClient.h
+ Scrollbar.cpp
+ Scrollbar.h
+ ScrollbarThemeComposite.cpp
+ ScrollbarThemeComposite.h
+ ScrollbarTheme.h
+ ScrollTypes.h
+ ScrollView.cpp
+ ScrollView.h
+ SearchPopupMenu.h
+ SharedBuffer.cpp
+ SharedBuffer.h
+ SharedTimer.h
+ Sound.h
+ sql/
+0 SQLiteAuthorizer.cpp
+ SQLiteDatabase.cpp
+ SQLiteDatabase.h
+ SQLiteFileSystem.cpp
+ SQLiteFileSystem.h
+ SQLiteStatement.cpp
+ SQLiteStatement.h
+ SQLiteTransaction.cpp
+ SQLiteTransaction.h
+ SQLValue.cpp
+ SQLValue.h
+2 SSLKeyGenerator.h
+ StaticConstructors.h
+ SuddenTermination.h
+ SystemTime.h
+ text/
+0 android/
+0 TextBreakIteratorInternalICU.cpp
+2 AtomicString.cpp
+ AtomicString.h
+ AtomicStringHash.h
+ AtomicStringImpl.h
+ Base64.cpp
+ Base64.h
+ BidiContext.cpp
+ BidiContext.h
+ BidiResolver.h
+ cf/
+0 StringCF.cpp
+ StringImplCF.cpp
+2 CharacterNames.h
+ CString.cpp
+ CString.h
+ mac/
+0 character-sets.txt
+ CharsetData.h
+ mac-encodings.txt
+ make-charset-table.pl
+ ShapeArabic.c
+ ShapeArabic.h
+ StringImplMac.mm
+ StringMac.mm
+ TextBoundaries.mm
+ TextBreakIteratorInternalICUMac.mm
+ TextCodecMac.cpp
+ TextCodecMac.h
+2 ParserUtilities.h
+ PlatformString.h
+ qt/
+0 StringQt.cpp
+ TextBoundaries.cpp
+ TextBreakIteratorQt.cpp
+ TextCodecQt.cpp
+ TextCodecQt.h
+2 RegularExpression.cpp
+ RegularExpression.h
+ SegmentedString.cpp
+ SegmentedString.h
+ StringBuffer.h
+ StringBuilder.cpp
+ StringBuilder.h
+ String.cpp
+ StringHash.h
+ StringImpl.cpp
+ StringImpl.h
+ TextBoundaries.h
+ TextBoundariesICU.cpp
+ TextBreakIterator.h
+ TextBreakIteratorICU.cpp
+ TextBreakIteratorInternalICU.h
+ TextCodec.cpp
+ TextCodec.h
+ TextCodecICU.cpp
+ TextCodecICU.h
+ TextCodecLatin1.cpp
+ TextCodecLatin1.h
+ TextCodecUserDefined.cpp
+ TextCodecUserDefined.h
+ TextCodecUTF16.cpp
+ TextCodecUTF16.h
+ TextDirection.h
+ TextEncoding.cpp
+ TextEncodingDetector.h
+ TextEncodingDetectorICU.cpp
+ TextEncodingDetectorNone.cpp
+ TextEncoding.h
+ TextEncodingRegistry.cpp
+ TextEncodingRegistry.h
+ TextStream.cpp
+ TextStream.h
+ UnicodeRange.cpp
+ UnicodeRange.h
+ win/
+0 TextBreakIteratorInternalICUWin.cpp
+3 Theme.cpp
+ Theme.h
+ ThemeTypes.h
+ ThreadCheck.h
+ ThreadGlobalData.cpp
+ ThreadGlobalData.h
+ ThreadTimers.cpp
+ ThreadTimers.h
+ Timer.cpp
+ Timer.h
+ TreeShared.h
+ Widget.cpp
+ Widget.h
+ win/
+0 BitmapInfo.cpp
+ BitmapInfo.h
+ SystemTimeWin.cpp
+3 plugins/
+0 mac/
+0 PluginDataMac.mm
+ PluginPackageMac.cpp
+ PluginViewMac.cpp
+2 MimeTypeArray.cpp
+ MimeTypeArray.h
+ MimeTypeArray.idl
+ MimeType.cpp
+ MimeType.h
+ MimeType.idl
+ npapi.cpp
+ npfunctions.h
+ PluginArray.cpp
+ PluginArray.h
+ PluginArray.idl
+ Plugin.cpp
+ PluginDatabaseClient.h
+ PluginDatabase.cpp
+ PluginDatabase.h
+ PluginData.cpp
+ PluginData.h
+ PluginDataNone.cpp
+ PluginDebug.cpp
+ PluginDebug.h
+ Plugin.h
+ Plugin.idl
+ PluginInfoStore.cpp
+ PluginInfoStore.h
+ PluginMainThreadScheduler.cpp
+ PluginMainThreadScheduler.h
+ PluginPackage.cpp
+ PluginPackage.h
+ PluginPackageNone.cpp
+ PluginQuirkSet.h
+ PluginStream.cpp
+ PluginStream.h
+ PluginView.cpp
+ PluginView.h
+ PluginViewNone.cpp
+ qt/
+0 PluginContainerQt.cpp
+ PluginContainerQt.h
+ PluginDataQt.cpp
+ PluginPackageQt.cpp
+ PluginViewQt.cpp
+2 symbian/
+0 npinterface.h
+ PluginContainerSymbian.cpp
+ PluginContainerSymbian.h
+ PluginDatabaseSymbian.cpp
+ PluginPackageSymbian.cpp
+ PluginViewSymbian.cpp
+2 win/
+0 PaintHooks.asm
+ PluginDatabaseWin.cpp
+ PluginDataWin.cpp
+ PluginMessageThrottlerWin.cpp
+ PluginMessageThrottlerWin.h
+ PluginPackageWin.cpp
+ PluginViewWin.cpp
+3 rendering/
+0 AutoTableLayout.cpp
+ AutoTableLayout.h
+ break_lines.cpp
+ break_lines.h
+ CounterNode.cpp
+ CounterNode.h
+ EllipsisBox.cpp
+ EllipsisBox.h
+ FixedTableLayout.cpp
+ FixedTableLayout.h
+ GapRects.h
+ HitTestRequest.h
+ HitTestResult.cpp
+ HitTestResult.h
+ InlineBox.cpp
+ InlineBox.h
+ InlineFlowBox.cpp
+ InlineFlowBox.h
+ InlineRunBox.h
+ InlineTextBox.cpp
+ InlineTextBox.h
+ LayoutState.cpp
+ LayoutState.h
+ MediaControlElements.cpp
+ MediaControlElements.h
+ OverlapTestRequestClient.h
+ PointerEventsHitRules.cpp
+ PointerEventsHitRules.h
+ RenderApplet.cpp
+ RenderApplet.h
+ RenderArena.cpp
+ RenderArena.h
+ RenderBlock.cpp
+ RenderBlock.h
+ RenderBlockLineLayout.cpp
+ RenderBox.cpp
+ RenderBox.h
+ RenderBoxModelObject.cpp
+ RenderBoxModelObject.h
+ RenderBR.cpp
+ RenderBR.h
+ RenderButton.cpp
+ RenderButton.h
+ RenderCounter.cpp
+ RenderCounter.h
+ RenderDataGrid.cpp
+ RenderDataGrid.h
+ RenderFieldset.cpp
+ RenderFieldset.h
+ RenderFileUploadControl.cpp
+ RenderFileUploadControl.h
+ RenderFlexibleBox.cpp
+ RenderFlexibleBox.h
+ RenderForeignObject.cpp
+ RenderForeignObject.h
+ RenderFrame.cpp
+ RenderFrame.h
+ RenderFrameSet.cpp
+ RenderFrameSet.h
+ RenderHTMLCanvas.cpp
+ RenderHTMLCanvas.h
+ RenderImage.cpp
+ RenderImageGeneratedContent.cpp
+ RenderImageGeneratedContent.h
+ RenderImage.h
+ RenderInline.cpp
+ RenderInline.h
+ RenderLayerBacking.cpp
+ RenderLayerBacking.h
+ RenderLayerCompositor.cpp
+ RenderLayerCompositor.h
+ RenderLayer.cpp
+ RenderLayer.h
+ RenderLineBoxList.cpp
+ RenderLineBoxList.h
+ RenderListBox.cpp
+ RenderListBox.h
+ RenderListItem.cpp
+ RenderListItem.h
+ RenderListMarker.cpp
+ RenderListMarker.h
+ RenderMarquee.cpp
+ RenderMarquee.h
+ RenderMediaControlsChromium.cpp
+ RenderMediaControlsChromium.h
+ RenderMediaControls.cpp
+ RenderMediaControls.h
+ RenderMedia.cpp
+ RenderMedia.h
+ RenderMenuList.cpp
+ RenderMenuList.h
+ RenderObjectChildList.cpp
+ RenderObjectChildList.h
+ RenderObject.cpp
+ RenderObject.h
+ RenderOverflow.h
+ RenderPart.cpp
+ RenderPart.h
+ RenderPartObject.cpp
+ RenderPartObject.h
+ RenderPath.cpp
+ RenderPath.h
+ RenderReplaced.cpp
+ RenderReplaced.h
+ RenderReplica.cpp
+ RenderReplica.h
+ RenderScrollbar.cpp
+ RenderScrollbar.h
+ RenderScrollbarPart.cpp
+ RenderScrollbarPart.h
+ RenderScrollbarTheme.cpp
+ RenderScrollbarTheme.h
+ RenderSelectionInfo.h
+ RenderSlider.cpp
+ RenderSlider.h
+ RenderSVGBlock.cpp
+ RenderSVGBlock.h
+ RenderSVGContainer.cpp
+ RenderSVGContainer.h
+ RenderSVGGradientStop.cpp
+ RenderSVGGradientStop.h
+ RenderSVGHiddenContainer.cpp
+ RenderSVGHiddenContainer.h
+ RenderSVGImage.cpp
+ RenderSVGImage.h
+ RenderSVGInline.cpp
+ RenderSVGInline.h
+ RenderSVGInlineText.cpp
+ RenderSVGInlineText.h
+ RenderSVGModelObject.cpp
+ RenderSVGModelObject.h
+ RenderSVGRoot.cpp
+ RenderSVGRoot.h
+ RenderSVGText.cpp
+ RenderSVGText.h
+ RenderSVGTextPath.cpp
+ RenderSVGTextPath.h
+ RenderSVGTransformableContainer.cpp
+ RenderSVGTransformableContainer.h
+ RenderSVGTSpan.cpp
+ RenderSVGTSpan.h
+ RenderSVGViewportContainer.cpp
+ RenderSVGViewportContainer.h
+ RenderTableCell.cpp
+ RenderTableCell.h
+ RenderTableCol.cpp
+ RenderTableCol.h
+ RenderTable.cpp
+ RenderTable.h
+ RenderTableRow.cpp
+ RenderTableRow.h
+ RenderTableSection.cpp
+ RenderTableSection.h
+ RenderTextControl.cpp
+ RenderTextControl.h
+ RenderTextControlMultiLine.cpp
+ RenderTextControlMultiLine.h
+ RenderTextControlSingleLine.cpp
+ RenderTextControlSingleLine.h
+ RenderText.cpp
+ RenderTextFragment.cpp
+ RenderTextFragment.h
+ RenderText.h
+ RenderThemeChromiumLinux.cpp
+ RenderThemeChromiumLinux.h
+ RenderThemeChromiumMac.h
+ RenderThemeChromiumMac.mm
+ RenderThemeChromiumSkia.cpp
+ RenderThemeChromiumSkia.h
+ RenderThemeChromiumWin.cpp
+ RenderThemeChromiumWin.h
+ RenderTheme.cpp
+ RenderTheme.h
+ RenderThemeMac.h
+ RenderThemeSafari.cpp
+ RenderThemeSafari.h
+ RenderThemeWince.cpp
+ RenderThemeWince.h
+ RenderThemeWin.cpp
+ RenderThemeWin.h
+ RenderTreeAsText.cpp
+ RenderTreeAsText.h
+ RenderVideo.cpp
+ RenderVideo.h
+ RenderView.cpp
+ RenderView.h
+ RenderWidget.cpp
+ RenderWidget.h
+ RenderWidgetProtector.h
+ RenderWordBreak.cpp
+ RenderWordBreak.h
+ RootInlineBox.cpp
+ RootInlineBox.h
+ ScrollBehavior.cpp
+ ScrollBehavior.h
+ style/
+0 BindingURI.cpp
+ BindingURI.h
+ BorderData.h
+ BorderValue.h
+ CollapsedBorderValue.h
+ ContentData.cpp
+ ContentData.h
+ CounterContent.h
+ CounterDirectives.cpp
+ CounterDirectives.h
+ CursorData.h
+ CursorList.h
+ DataRef.h
+ FillLayer.cpp
+ FillLayer.h
+ KeyframeList.cpp
+ KeyframeList.h
+ NinePieceImage.cpp
+ NinePieceImage.h
+ OutlineValue.h
+ RenderStyleConstants.h
+ RenderStyle.cpp
+ RenderStyle.h
+ ShadowData.cpp
+ ShadowData.h
+ StyleBackgroundData.cpp
+ StyleBackgroundData.h
+ StyleBoxData.cpp
+ StyleBoxData.h
+ StyleCachedImage.cpp
+ StyleCachedImage.h
+ StyleDashboardRegion.h
+ StyleFlexibleBoxData.cpp
+ StyleFlexibleBoxData.h
+ StyleGeneratedImage.cpp
+ StyleGeneratedImage.h
+ StyleImage.h
+ StyleInheritedData.cpp
+ StyleInheritedData.h
+ StyleMarqueeData.cpp
+ StyleMarqueeData.h
+ StyleMultiColData.cpp
+ StyleMultiColData.h
+ StyleRareInheritedData.cpp
+ StyleRareInheritedData.h
+ StyleRareNonInheritedData.cpp
+ StyleRareNonInheritedData.h
+ StyleReflection.h
+ StyleSurroundData.cpp
+ StyleSurroundData.h
+ StyleTransformData.cpp
+ StyleTransformData.h
+ StyleVisualData.cpp
+ StyleVisualData.h
+ SVGRenderStyle.cpp
+ SVGRenderStyleDefs.cpp
+ SVGRenderStyleDefs.h
+ SVGRenderStyle.h
+2 SVGCharacterLayoutInfo.cpp
+ SVGCharacterLayoutInfo.h
+ SVGInlineFlowBox.cpp
+ SVGInlineFlowBox.h
+ SVGInlineTextBox.cpp
+ SVGInlineTextBox.h
+ SVGRenderSupport.cpp
+ SVGRenderSupport.h
+ SVGRenderTreeAsText.cpp
+ SVGRenderTreeAsText.h
+ SVGRootInlineBox.cpp
+ SVGRootInlineBox.h
+ TableLayout.h
+ TextControlInnerElements.cpp
+ TextControlInnerElements.h
+ TransformState.cpp
+ TransformState.h
+2 Resources/
+0 aliasCursor.png
+ cellCursor.png
+ contextMenuCursor.png
+ copyCursor.png
+ crossHairCursor.png
+ deleteButton.png
+ deleteButtonPressed.png
+ deleteButtonPressed.tiff
+ deleteButton.tiff
+ eastResizeCursor.png
+ eastWestResizeCursor.png
+ helpCursor.png
+ linkCursor.png
+ missingImage.png
+ missingImage.tiff
+ moveCursor.png
+ noDropCursor.png
+ noneCursor.png
+ northEastResizeCursor.png
+ northEastSouthWestResizeCursor.png
+ northResizeCursor.png
+ northSouthResizeCursor.png
+ northWestResizeCursor.png
+ northWestSouthEastResizeCursor.png
+ notAllowedCursor.png
+ nullPlugin.png
+ panIcon.png
+ progressCursor.png
+ southEastResizeCursor.png
+ southResizeCursor.png
+ southWestResizeCursor.png
+ textAreaResizeCorner.png
+ textAreaResizeCorner.tiff
+ urlIcon.png
+ verticalTextCursor.png
+ waitCursor.png
+ westResizeCursor.png
+ zoomInCursor.png
+ zoomOutCursor.png
+2 storage/
+0 ChangeVersionWrapper.cpp
+ ChangeVersionWrapper.h
+ DatabaseAuthorizer.cpp
+ DatabaseAuthorizer.h
+ Database.cpp
+ DatabaseDetails.h
+ Database.h
+ Database.idl
+ DatabaseTask.cpp
+ DatabaseTask.h
+ DatabaseThread.cpp
+ DatabaseThread.h
+ DatabaseTrackerClient.h
+ DatabaseTracker.cpp
+ DatabaseTracker.h
+ LocalStorageTask.cpp
+ LocalStorageTask.h
+ LocalStorageThread.cpp
+ LocalStorageThread.h
+ OriginQuotaManager.cpp
+ OriginQuotaManager.h
+ OriginUsageRecord.cpp
+ OriginUsageRecord.h
+ SQLError.h
+ SQLError.idl
+ SQLResultSet.cpp
+ SQLResultSet.h
+ SQLResultSet.idl
+ SQLResultSetRowList.cpp
+ SQLResultSetRowList.h
+ SQLResultSetRowList.idl
+ SQLStatementCallback.h
+ SQLStatement.cpp
+ SQLStatementErrorCallback.h
+ SQLStatement.h
+ SQLTransactionCallback.h
+ SQLTransactionClient.cpp
+ SQLTransactionClient.h
+ SQLTransactionCoordinator.cpp
+ SQLTransactionCoordinator.h
+ SQLTransaction.cpp
+ SQLTransactionErrorCallback.h
+ SQLTransaction.h
+ SQLTransaction.idl
+ StorageArea.h
+ StorageAreaImpl.cpp
+ StorageAreaImpl.h
+ StorageAreaSync.cpp
+ StorageAreaSync.h
+ Storage.cpp
+ StorageEvent.cpp
+ StorageEventDispatcher.cpp
+ StorageEventDispatcher.h
+ StorageEvent.h
+ StorageEvent.idl
+ Storage.h
+ Storage.idl
+ StorageMap.cpp
+ StorageMap.h
+ StorageNamespace.cpp
+ StorageNamespace.h
+ StorageNamespaceImpl.cpp
+ StorageNamespaceImpl.h
+ StorageSyncManager.cpp
+ StorageSyncManager.h
+2 svg/
+0 animation/
+0 SMILTimeContainer.cpp
+ SMILTimeContainer.h
+ SMILTime.cpp
+ SMILTime.h
+ SVGSMILElement.cpp
+ SVGSMILElement.h
+2 ColorDistance.cpp
+ ColorDistance.h
+ ElementTimeControl.h
+ ElementTimeControl.idl
+ GradientAttributes.h
+ graphics/
+0 filters/
+0 SVGDistantLightSource.h
+ SVGFEConvolveMatrix.cpp
+ SVGFEConvolveMatrix.h
+ SVGFEDiffuseLighting.cpp
+ SVGFEDiffuseLighting.h
+ SVGFEDisplacementMap.cpp
+ SVGFEDisplacementMap.h
+ SVGFEFlood.cpp
+ SVGFEFlood.h
+ SVGFEImage.cpp
+ SVGFEImage.h
+ SVGFEMerge.cpp
+ SVGFEMerge.h
+ SVGFEMorphology.cpp
+ SVGFEMorphology.h
+ SVGFEOffset.cpp
+ SVGFEOffset.h
+ SVGFESpecularLighting.cpp
+ SVGFESpecularLighting.h
+ SVGFETile.cpp
+ SVGFETile.h
+ SVGFETurbulence.cpp
+ SVGFETurbulence.h
+ SVGFilterBuilder.cpp
+ SVGFilterBuilder.h
+ SVGFilter.cpp
+ SVGFilter.h
+ SVGLightSource.cpp
+ SVGLightSource.h
+ SVGPointLightSource.h
+ SVGSpotLightSource.h
+2 SVGImage.cpp
+ SVGImage.h
+ SVGPaintServer.cpp
+ SVGPaintServerGradient.cpp
+ SVGPaintServerGradient.h
+ SVGPaintServer.h
+ SVGPaintServerLinearGradient.cpp
+ SVGPaintServerLinearGradient.h
+ SVGPaintServerPattern.cpp
+ SVGPaintServerPattern.h
+ SVGPaintServerRadialGradient.cpp
+ SVGPaintServerRadialGradient.h
+ SVGPaintServerSolid.cpp
+ SVGPaintServerSolid.h
+ SVGResourceClipper.cpp
+ SVGResourceClipper.h
+ SVGResource.cpp
+ SVGResourceFilter.cpp
+ SVGResourceFilter.h
+ SVGResource.h
+ SVGResourceListener.h
+ SVGResourceMarker.cpp
+ SVGResourceMarker.h
+ SVGResourceMasker.cpp
+ SVGResourceMasker.h
+2 LinearGradientAttributes.h
+ PatternAttributes.h
+ RadialGradientAttributes.h
+ SVGAElement.cpp
+ SVGAElement.h
+ SVGAElement.idl
+ SVGAllInOne.cpp
+ SVGAltGlyphElement.cpp
+ SVGAltGlyphElement.h
+ SVGAltGlyphElement.idl
+ SVGAngle.cpp
+ SVGAngle.h
+ SVGAngle.idl
+ SVGAnimateColorElement.cpp
+ SVGAnimateColorElement.h
+ SVGAnimateColorElement.idl
+ SVGAnimatedAngle.idl
+ SVGAnimatedBoolean.idl
+ SVGAnimatedEnumeration.idl
+ SVGAnimatedInteger.idl
+ SVGAnimatedLength.idl
+ SVGAnimatedLengthList.idl
+ SVGAnimatedNumber.idl
+ SVGAnimatedNumberList.idl
+ SVGAnimatedPathData.cpp
+ SVGAnimatedPathData.h
+ SVGAnimatedPathData.idl
+ SVGAnimatedPoints.cpp
+ SVGAnimatedPoints.h
+ SVGAnimatedPoints.idl
+ SVGAnimatedPreserveAspectRatio.idl
+ SVGAnimatedProperty.h
+ SVGAnimatedRect.idl
+ SVGAnimatedString.idl
+ SVGAnimatedTemplate.h
+ SVGAnimatedTransformList.idl
+ SVGAnimateElement.cpp
+ SVGAnimateElement.h
+ SVGAnimateElement.idl
+ SVGAnimateMotionElement.cpp
+ SVGAnimateMotionElement.h
+ SVGAnimateTransformElement.cpp
+ SVGAnimateTransformElement.h
+ SVGAnimateTransformElement.idl
+ SVGAnimationElement.cpp
+ SVGAnimationElement.h
+ SVGAnimationElement.idl
+ svgattrs.in
+ SVGCircleElement.cpp
+ SVGCircleElement.h
+ SVGCircleElement.idl
+ SVGClipPathElement.cpp
+ SVGClipPathElement.h
+ SVGClipPathElement.idl
+ SVGColor.cpp
+ SVGColor.h
+ SVGColor.idl
+ SVGComponentTransferFunctionElement.cpp
+ SVGComponentTransferFunctionElement.h
+ SVGComponentTransferFunctionElement.idl
+ SVGCursorElement.cpp
+ SVGCursorElement.h
+ SVGCursorElement.idl
+ SVGDefsElement.cpp
+ SVGDefsElement.h
+ SVGDefsElement.idl
+ SVGDescElement.cpp
+ SVGDescElement.h
+ SVGDescElement.idl
+ SVGDocument.cpp
+ SVGDocumentExtensions.cpp
+ SVGDocumentExtensions.h
+ SVGDocument.h
+ SVGDocument.idl
+ SVGElement.cpp
+ SVGElement.h
+ SVGElement.idl
+ SVGElementInstance.cpp
+ SVGElementInstance.h
+ SVGElementInstance.idl
+ SVGElementInstanceList.cpp
+ SVGElementInstanceList.h
+ SVGElementInstanceList.idl
+ SVGEllipseElement.cpp
+ SVGEllipseElement.h
+ SVGEllipseElement.idl
+ SVGException.h
+ SVGException.idl
+ SVGExternalResourcesRequired.cpp
+ SVGExternalResourcesRequired.h
+ SVGExternalResourcesRequired.idl
+ SVGFEBlendElement.cpp
+ SVGFEBlendElement.h
+ SVGFEBlendElement.idl
+ SVGFEColorMatrixElement.cpp
+ SVGFEColorMatrixElement.h
+ SVGFEColorMatrixElement.idl
+ SVGFEComponentTransferElement.cpp
+ SVGFEComponentTransferElement.h
+ SVGFEComponentTransferElement.idl
+ SVGFECompositeElement.cpp
+ SVGFECompositeElement.h
+ SVGFECompositeElement.idl
+ SVGFEDiffuseLightingElement.cpp
+ SVGFEDiffuseLightingElement.h
+ SVGFEDiffuseLightingElement.idl
+ SVGFEDisplacementMapElement.cpp
+ SVGFEDisplacementMapElement.h
+ SVGFEDisplacementMapElement.idl
+ SVGFEDistantLightElement.cpp
+ SVGFEDistantLightElement.h
+ SVGFEDistantLightElement.idl
+ SVGFEFloodElement.cpp
+ SVGFEFloodElement.h
+ SVGFEFloodElement.idl
+ SVGFEFuncAElement.cpp
+ SVGFEFuncAElement.h
+ SVGFEFuncAElement.idl
+ SVGFEFuncBElement.cpp
+ SVGFEFuncBElement.h
+ SVGFEFuncBElement.idl
+ SVGFEFuncGElement.cpp
+ SVGFEFuncGElement.h
+ SVGFEFuncGElement.idl
+ SVGFEFuncRElement.cpp
+ SVGFEFuncRElement.h
+ SVGFEFuncRElement.idl
+ SVGFEGaussianBlurElement.cpp
+ SVGFEGaussianBlurElement.h
+ SVGFEGaussianBlurElement.idl
+ SVGFEImageElement.cpp
+ SVGFEImageElement.h
+ SVGFEImageElement.idl
+ SVGFELightElement.cpp
+ SVGFELightElement.h
+ SVGFEMergeElement.cpp
+ SVGFEMergeElement.h
+ SVGFEMergeElement.idl
+ SVGFEMergeNodeElement.cpp
+ SVGFEMergeNodeElement.h
+ SVGFEMergeNodeElement.idl
+ SVGFEMorphologyElement.cpp
+ SVGFEMorphologyElement.h
+ SVGFEMorphologyElement.idl
+ SVGFEOffsetElement.cpp
+ SVGFEOffsetElement.h
+ SVGFEOffsetElement.idl
+ SVGFEPointLightElement.cpp
+ SVGFEPointLightElement.h
+ SVGFEPointLightElement.idl
+ SVGFESpecularLightingElement.cpp
+ SVGFESpecularLightingElement.h
+ SVGFESpecularLightingElement.idl
+ SVGFESpotLightElement.cpp
+ SVGFESpotLightElement.h
+ SVGFESpotLightElement.idl
+ SVGFETileElement.cpp
+ SVGFETileElement.h
+ SVGFETileElement.idl
+ SVGFETurbulenceElement.cpp
+ SVGFETurbulenceElement.h
+ SVGFETurbulenceElement.idl
+ SVGFilterElement.cpp
+ SVGFilterElement.h
+ SVGFilterElement.idl
+ SVGFilterPrimitiveStandardAttributes.cpp
+ SVGFilterPrimitiveStandardAttributes.h
+ SVGFilterPrimitiveStandardAttributes.idl
+ SVGFitToViewBox.cpp
+ SVGFitToViewBox.h
+ SVGFitToViewBox.idl
+ SVGFont.cpp
+ SVGFontData.cpp
+ SVGFontData.h
+ SVGFontElement.cpp
+ SVGFontElement.h
+ SVGFontElement.idl
+ SVGFontFaceElement.cpp
+ SVGFontFaceElement.h
+ SVGFontFaceElement.idl
+ SVGFontFaceFormatElement.cpp
+ SVGFontFaceFormatElement.h
+ SVGFontFaceFormatElement.idl
+ SVGFontFaceNameElement.cpp
+ SVGFontFaceNameElement.h
+ SVGFontFaceNameElement.idl
+ SVGFontFaceSrcElement.cpp
+ SVGFontFaceSrcElement.h
+ SVGFontFaceSrcElement.idl
+ SVGFontFaceUriElement.cpp
+ SVGFontFaceUriElement.h
+ SVGFontFaceUriElement.idl
+ SVGForeignObjectElement.cpp
+ SVGForeignObjectElement.h
+ SVGForeignObjectElement.idl
+ SVGGElement.cpp
+ SVGGElement.h
+ SVGGElement.idl
+ SVGGlyphElement.cpp
+ SVGGlyphElement.h
+ SVGGlyphElement.idl
+ SVGGlyphMap.h
+ SVGGradientElement.cpp
+ SVGGradientElement.h
+ SVGGradientElement.idl
+ SVGHKernElement.cpp
+ SVGHKernElement.h
+ SVGHKernElement.idl
+ SVGImageElement.cpp
+ SVGImageElement.h
+ SVGImageElement.idl
+ SVGImageLoader.cpp
+ SVGImageLoader.h
+ SVGLangSpace.cpp
+ SVGLangSpace.h
+ SVGLangSpace.idl
+ SVGLength.cpp
+ SVGLength.h
+ SVGLength.idl
+ SVGLengthList.cpp
+ SVGLengthList.h
+ SVGLengthList.idl
+ SVGLinearGradientElement.cpp
+ SVGLinearGradientElement.h
+ SVGLinearGradientElement.idl
+ SVGLineElement.cpp
+ SVGLineElement.h
+ SVGLineElement.idl
+ SVGList.h
+ SVGListTraits.h
+ SVGLocatable.cpp
+ SVGLocatable.h
+ SVGLocatable.idl
+ SVGMarkerElement.cpp
+ SVGMarkerElement.h
+ SVGMarkerElement.idl
+ SVGMaskElement.cpp
+ SVGMaskElement.h
+ SVGMaskElement.idl
+ SVGMatrix.idl
+ SVGMetadataElement.cpp
+ SVGMetadataElement.h
+ SVGMetadataElement.idl
+ SVGMissingGlyphElement.cpp
+ SVGMissingGlyphElement.h
+ SVGMissingGlyphElement.idl
+ SVGMPathElement.cpp
+ SVGMPathElement.h
+ SVGNumber.idl
+ SVGNumberList.cpp
+ SVGNumberList.h
+ SVGNumberList.idl
+ SVGPaint.cpp
+ SVGPaint.h
+ SVGPaint.idl
+ SVGParserUtilities.cpp
+ SVGParserUtilities.h
+ SVGPathElement.cpp
+ SVGPathElement.h
+ SVGPathElement.idl
+ SVGPathSegArcAbs.idl
+ SVGPathSegArc.cpp
+ SVGPathSegArc.h
+ SVGPathSegArcRel.idl
+ SVGPathSegClosePath.cpp
+ SVGPathSegClosePath.h
+ SVGPathSegClosePath.idl
+ SVGPathSegCurvetoCubicAbs.idl
+ SVGPathSegCurvetoCubic.cpp
+ SVGPathSegCurvetoCubic.h
+ SVGPathSegCurvetoCubicRel.idl
+ SVGPathSegCurvetoCubicSmoothAbs.idl
+ SVGPathSegCurvetoCubicSmooth.cpp
+ SVGPathSegCurvetoCubicSmooth.h
+ SVGPathSegCurvetoCubicSmoothRel.idl
+ SVGPathSegCurvetoQuadraticAbs.idl
+ SVGPathSegCurvetoQuadratic.cpp
+ SVGPathSegCurvetoQuadratic.h
+ SVGPathSegCurvetoQuadraticRel.idl
+ SVGPathSegCurvetoQuadraticSmoothAbs.idl
+ SVGPathSegCurvetoQuadraticSmooth.cpp
+ SVGPathSegCurvetoQuadraticSmooth.h
+ SVGPathSegCurvetoQuadraticSmoothRel.idl
+ SVGPathSeg.h
+ SVGPathSeg.idl
+ SVGPathSegLinetoAbs.idl
+ SVGPathSegLineto.cpp
+ SVGPathSegLineto.h
+ SVGPathSegLinetoHorizontalAbs.idl
+ SVGPathSegLinetoHorizontal.cpp
+ SVGPathSegLinetoHorizontal.h
+ SVGPathSegLinetoHorizontalRel.idl
+ SVGPathSegLinetoRel.idl
+ SVGPathSegLinetoVerticalAbs.idl
+ SVGPathSegLinetoVertical.cpp
+ SVGPathSegLinetoVertical.h
+ SVGPathSegLinetoVerticalRel.idl
+ SVGPathSegList.cpp
+ SVGPathSegList.h
+ SVGPathSegList.idl
+ SVGPathSegMovetoAbs.idl
+ SVGPathSegMoveto.cpp
+ SVGPathSegMoveto.h
+ SVGPathSegMovetoRel.idl
+ SVGPatternElement.cpp
+ SVGPatternElement.h
+ SVGPatternElement.idl
+ SVGPoint.idl
+ SVGPointList.cpp
+ SVGPointList.h
+ SVGPointList.idl
+ SVGPolyElement.cpp
+ SVGPolyElement.h
+ SVGPolygonElement.cpp
+ SVGPolygonElement.h
+ SVGPolygonElement.idl
+ SVGPolylineElement.cpp
+ SVGPolylineElement.h
+ SVGPolylineElement.idl
+ SVGPreserveAspectRatio.cpp
+ SVGPreserveAspectRatio.h
+ SVGPreserveAspectRatio.idl
+ SVGRadialGradientElement.cpp
+ SVGRadialGradientElement.h
+ SVGRadialGradientElement.idl
+ SVGRectElement.cpp
+ SVGRectElement.h
+ SVGRectElement.idl
+ SVGRect.idl
+ SVGRenderingIntent.h
+ SVGRenderingIntent.idl
+ SVGScriptElement.cpp
+ SVGScriptElement.h
+ SVGScriptElement.idl
+ SVGSetElement.cpp
+ SVGSetElement.h
+ SVGSetElement.idl
+ SVGStopElement.cpp
+ SVGStopElement.h
+ SVGStopElement.idl
+ SVGStringList.cpp
+ SVGStringList.h
+ SVGStringList.idl
+ SVGStylable.cpp
+ SVGStylable.h
+ SVGStylable.idl
+ SVGStyledElement.cpp
+ SVGStyledElement.h
+ SVGStyledLocatableElement.cpp
+ SVGStyledLocatableElement.h
+ SVGStyledTransformableElement.cpp
+ SVGStyledTransformableElement.h
+ SVGStyleElement.cpp
+ SVGStyleElement.h
+ SVGStyleElement.idl
+ SVGSVGElement.cpp
+ SVGSVGElement.h
+ SVGSVGElement.idl
+ SVGSwitchElement.cpp
+ SVGSwitchElement.h
+ SVGSwitchElement.idl
+ SVGSymbolElement.cpp
+ SVGSymbolElement.h
+ SVGSymbolElement.idl
+ svgtags.in
+ SVGTests.cpp
+ SVGTests.h
+ SVGTests.idl
+ SVGTextContentElement.cpp
+ SVGTextContentElement.h
+ SVGTextContentElement.idl
+ SVGTextElement.cpp
+ SVGTextElement.h
+ SVGTextElement.idl
+ SVGTextPathElement.cpp
+ SVGTextPathElement.h
+ SVGTextPathElement.idl
+ SVGTextPositioningElement.cpp
+ SVGTextPositioningElement.h
+ SVGTextPositioningElement.idl
+ SVGTitleElement.cpp
+ SVGTitleElement.h
+ SVGTitleElement.idl
+ SVGTransformable.cpp
+ SVGTransformable.h
+ SVGTransformable.idl
+ SVGTransform.cpp
+ SVGTransformDistance.cpp
+ SVGTransformDistance.h
+ SVGTransform.h
+ SVGTransform.idl
+ SVGTransformList.cpp
+ SVGTransformList.h
+ SVGTransformList.idl
+ SVGTRefElement.cpp
+ SVGTRefElement.h
+ SVGTRefElement.idl
+ SVGTSpanElement.cpp
+ SVGTSpanElement.h
+ SVGTSpanElement.idl
+ SVGUnitTypes.h
+ SVGUnitTypes.idl
+ SVGURIReference.cpp
+ SVGURIReference.h
+ SVGURIReference.idl
+ SVGUseElement.cpp
+ SVGUseElement.h
+ SVGUseElement.idl
+ SVGViewElement.cpp
+ SVGViewElement.h
+ SVGViewElement.idl
+ SVGViewSpec.cpp
+ SVGViewSpec.h
+ SVGViewSpec.idl
+ SVGZoomAndPan.cpp
+ SVGZoomAndPan.h
+ SVGZoomAndPan.idl
+ SVGZoomEvent.cpp
+ SVGZoomEvent.h
+ SVGZoomEvent.idl
+ SynchronizablePropertyController.cpp
+ SynchronizablePropertyController.h
+ SynchronizableTypeWrapper.h
+ xlinkattrs.in
+2 WebCore.3DRendering.exp
+ WebCore.DashboardSupport.exp
+ WebCore.gypi
+ WebCore.JNI.exp
+ WebCore.NPAPI.exp
+ WebCore.order
+ WebCorePrefix.cpp
+ WebCorePrefix.h
+ WebCore.pro
+ WebCore.qrc
+ WebCore.SVG.Animation.exp
+ WebCore.SVG.exp
+ WebCore.SVG.Filters.exp
+ WebCore.SVG.ForeignObject.exp
+ WebCore.Tiger.exp
+ WebCore.Video.exp
+ WebCore.VideoProxy.exp
+ websockets/
+0 WebSocketChannelClient.h
+ WebSocketChannel.cpp
+ WebSocketChannel.h
+ WebSocket.cpp
+ WebSocket.h
+ WebSocketHandshake.cpp
+ WebSocketHandshake.h
+ WebSocket.idl
+2 wml/
+0 WMLAccessElement.cpp
+ WMLAccessElement.h
+ WMLAElement.cpp
+ WMLAElement.h
+ WMLAnchorElement.cpp
+ WMLAnchorElement.h
+ WMLAttributeNames.in
+ WMLBRElement.cpp
+ WMLBRElement.h
+ WMLCardElement.cpp
+ WMLCardElement.h
+ WMLDocument.cpp
+ WMLDocument.h
+ WMLDoElement.cpp
+ WMLDoElement.h
+ WMLElement.cpp
+ WMLElement.h
+ WMLErrorHandling.cpp
+ WMLErrorHandling.h
+ WMLEventHandlingElement.cpp
+ WMLEventHandlingElement.h
+ WMLFieldSetElement.cpp
+ WMLFieldSetElement.h
+ WMLFormControlElement.cpp
+ WMLFormControlElement.h
+ WMLGoElement.cpp
+ WMLGoElement.h
+ WMLImageElement.cpp
+ WMLImageElement.h
+ WMLImageLoader.cpp
+ WMLImageLoader.h
+ WMLInputElement.cpp
+ WMLInputElement.h
+ WMLInsertedLegendElement.cpp
+ WMLInsertedLegendElement.h
+ WMLIntrinsicEvent.cpp
+ WMLIntrinsicEvent.h
+ WMLIntrinsicEventHandler.cpp
+ WMLIntrinsicEventHandler.h
+ WMLMetaElement.cpp
+ WMLMetaElement.h
+ WMLNoopElement.cpp
+ WMLNoopElement.h
+ WMLOnEventElement.cpp
+ WMLOnEventElement.h
+ WMLOptGroupElement.cpp
+ WMLOptGroupElement.h
+ WMLOptionElement.cpp
+ WMLOptionElement.h
+ WMLPageState.cpp
+ WMLPageState.h
+ WMLPElement.cpp
+ WMLPElement.h
+ WMLPostfieldElement.cpp
+ WMLPostfieldElement.h
+ WMLPrevElement.cpp
+ WMLPrevElement.h
+ WMLRefreshElement.cpp
+ WMLRefreshElement.h
+ WMLSelectElement.cpp
+ WMLSelectElement.h
+ WMLSetvarElement.cpp
+ WMLSetvarElement.h
+ WMLTableElement.cpp
+ WMLTableElement.h
+ WMLTagNames.in
+ WMLTaskElement.cpp
+ WMLTaskElement.h
+ WMLTemplateElement.cpp
+ WMLTemplateElement.h
+ WMLTimerElement.cpp
+ WMLTimerElement.h
+ WMLVariables.cpp
+ WMLVariables.h
+2 workers/
+0 AbstractWorker.cpp
+ AbstractWorker.h
+ AbstractWorker.idl
+ DedicatedWorkerContext.cpp
+ DedicatedWorkerContext.h
+ DedicatedWorkerContext.idl
+ DedicatedWorkerThread.cpp
+ DedicatedWorkerThread.h
+ DefaultSharedWorkerRepository.cpp
+ DefaultSharedWorkerRepository.h
+ GenericWorkerTask.h
+ SharedWorkerContext.cpp
+ SharedWorkerContext.h
+ SharedWorkerContext.idl
+ SharedWorker.cpp
+ SharedWorker.h
+ SharedWorker.idl
+ SharedWorkerRepository.h
+ SharedWorkerThread.cpp
+ SharedWorkerThread.h
+ WorkerContext.cpp
+ WorkerContext.h
+ WorkerContext.idl
+ WorkerContextProxy.h
+ Worker.cpp
+ Worker.h
+ Worker.idl
+ WorkerLoaderProxy.h
+ WorkerLocation.cpp
+ WorkerLocation.h
+ WorkerLocation.idl
+ WorkerMessagingProxy.cpp
+ WorkerMessagingProxy.h
+ WorkerObjectProxy.h
+ WorkerReportingProxy.h
+ WorkerRunLoop.cpp
+ WorkerRunLoop.h
+ WorkerScriptLoaderClient.h
+ WorkerScriptLoader.cpp
+ WorkerScriptLoader.h
+ WorkerThread.cpp
+ WorkerThread.h
+2 xml/
+0 DOMParser.cpp
+ DOMParser.h
+ DOMParser.idl
+ NativeXPathNSResolver.cpp
+ NativeXPathNSResolver.h
+ xmlattrs.in
+ XMLHttpRequest.cpp
+ XMLHttpRequestException.h
+ XMLHttpRequestException.idl
+ XMLHttpRequest.h
+ XMLHttpRequest.idl
+ XMLHttpRequestProgressEvent.h
+ XMLHttpRequestProgressEvent.idl
+ XMLHttpRequestUpload.cpp
+ XMLHttpRequestUpload.h
+ XMLHttpRequestUpload.idl
+ XMLSerializer.cpp
+ XMLSerializer.h
+ XMLSerializer.idl
+ XPathEvaluator.cpp
+ XPathEvaluator.h
+ XPathEvaluator.idl
+ XPathException.h
+ XPathException.idl
+ XPathExpression.cpp
+ XPathExpression.h
+ XPathExpression.idl
+ XPathExpressionNode.cpp
+ XPathExpressionNode.h
+ XPathFunctions.cpp
+ XPathFunctions.h
+ XPathGrammar.y
+ XPathNamespace.cpp
+ XPathNamespace.h
+ XPathNodeSet.cpp
+ XPathNodeSet.h
+ XPathNSResolver.cpp
+ XPathNSResolver.h
+ XPathNSResolver.idl
+ XPathParser.cpp
+ XPathParser.h
+ XPathPath.cpp
+ XPathPath.h
+ XPathPredicate.cpp
+ XPathPredicate.h
+ XPathResult.cpp
+ XPathResult.h
+ XPathResult.idl
+ XPathStep.cpp
+ XPathStep.h
+ XPathUtil.cpp
+ XPathUtil.h
+ XPathValue.cpp
+ XPathValue.h
+ XPathVariableReference.cpp
+ XPathVariableReference.h
+ XSLImportRule.cpp
+ XSLImportRule.h
+ XSLStyleSheet.h
+ XSLStyleSheetLibxslt.cpp
+ XSLStyleSheetQt.cpp
+ XSLTExtensions.cpp
+ XSLTExtensions.h
+ XSLTProcessor.cpp
+ XSLTProcessor.h
+ XSLTProcessor.idl
+ XSLTProcessorLibxslt.cpp
+ XSLTProcessorQt.cpp
+ XSLTUnicodeSort.cpp
+ XSLTUnicodeSort.h
+3 WebKit/
+0 ChangeLog
+ LICENSE
+ mac/
+0 Configurations/
+0 Version.xcconfig
+2 Workers/
+0 WebWorkersPrivate.h
+ WebWorkersPrivate.mm
+4 WebKit.pri
+ WebKit/qt/
+0 Api/
+0 headers.pri
+ qgraphicswebview.cpp
+ qgraphicswebview.h
+ qwebdatabase.cpp
+ qwebdatabase.h
+ qwebdatabase_p.h
+ qwebelement.cpp
+ qwebelement.h
+ qwebframe.cpp
+ qwebframe.h
+ qwebframe_p.h
+ qwebhistory.cpp
+ qwebhistory.h
+ qwebhistoryinterface.cpp
+ qwebhistoryinterface.h
+ qwebhistory_p.h
+ qwebinspector.cpp
+ qwebinspector.h
+ qwebinspector_p.h
+ qwebkitglobal.h
+ qwebkitversion.cpp
+ qwebkitversion.h
+ qwebpage.cpp
+ qwebpage.h
+ qwebpage_p.h
+ qwebplugindatabase.cpp
+ qwebplugindatabase_p.h
+ qwebpluginfactory.cpp
+ qwebpluginfactory.h
+ qwebsecurityorigin.cpp
+ qwebsecurityorigin.h
+ qwebsecurityorigin_p.h
+ qwebsettings.cpp
+ qwebsettings.h
+ qwebview.cpp
+ qwebview.h
+2 ChangeLog
+ docs/
+0 docs.pri
+ qtwebkit.qdoc
+0 conf
+2 qwebview-diagram.png
+ webkitsnippets/
+0 qtwebkit_build_snippet.qdoc
+ qtwebkit_qwebinspector_snippet.cpp
+ qtwebkit_qwebview_snippet.cpp
+ simple/
+0 main.cpp
+ simple.pro
+2 webelement/
+0 main.cpp
+ webelement.pro
+2 webpage/
+0 main.cpp
+ webpage.pro
+4 tests/
+0 benchmarks/
+0 loading/
+0 tst_loading.cpp
+ tst_loading.pro
+2 painting/
+0 tst_painting.cpp
+ tst_painting.pro
+3 qgraphicswebview/
+0 qgraphicswebview.pro
+ tst_qgraphicswebview.cpp
+2 qwebelement/
+0 image.png
+ qwebelement.pro
+ qwebelement.qrc
+ style2.css
+ style.css
+ tst_qwebelement.cpp
+2 qwebframe/
+0 image.png
+ qwebframe.pro
+ qwebframe.qrc
+ resources/
+0 image2.png
+2 style.css
+ test1.html
+ test2.html
+ tst_qwebframe.cpp
+2 qwebhistory/
+0 data/
+0 page1.html
+ page2.html
+ page3.html
+ page4.html
+ page5.html
+ page6.html
+3 qwebhistoryinterface/
+0 qwebhistoryinterface.pro
+ tst_qwebhistoryinterface.cpp
+2 qwebhistory/qwebhistory.pro
+ qwebhistory/tst_qwebhistory.cpp
+ qwebhistory/tst_qwebhistory.qrc
+ qwebpage/
+0 frametest/
+0 frame_a.html
+ iframe2.html
+ iframe3.html
+ iframe.html
+ index.html
+2 qwebpage.pro
+ tst_qwebpage.cpp
+ tst_qwebpage.qrc
+2 qwebplugindatabase/
+0 qwebplugindatabase.pro
+ tst_qwebplugindatabase.cpp
+2 qwebview/
+0 data/
+0 frame_a.html
+ index.html
+2 .gitignore
+ qwebview.pro
+ tst_qwebview.cpp
+ tst_qwebview.qrc
+2 resources/
+0 test.swf
+2 tests.pro
+ util.h
+2 WebCoreSupport/
+0 ChromeClientQt.cpp
+ ChromeClientQt.h
+ ContextMenuClientQt.cpp
+ ContextMenuClientQt.h
+ DragClientQt.cpp
+ DragClientQt.h
+ EditCommandQt.cpp
+ EditCommandQt.h
+ EditorClientQt.cpp
+ EditorClientQt.h
+ FrameLoaderClientQt.cpp
+ FrameLoaderClientQt.h
+ InspectorClientQt.cpp
+ InspectorClientQt.h
+2 WebKit_pch.h
+2 WebKit/scripts/
+0 generate-webkitversion.pl
+2 WebKit/StringsNotToBeLocalized.txt
+2 wintab/
+0 pktdef.h
+ wintab.h
+2 xorg/
+0 wacomcfg.h
+2 zlib/
+0 adler32.c
+ algorithm.txt
+ ChangeLog
+ compress.c
+ configure
+ crc32.c
+ crc32.h
+ deflate.c
+ deflate.h
+ example.c
+ examples/
+0 fitblk.c
+ gun.c
+ gzappend.c
+ gzjoin.c
+ gzlog.c
+ gzlog.h
+ README.examples
+ zlib_how.html
+ zpipe.c
+ zran.c
+2 FAQ
+ gzio.c
+ INDEX
+ infback.c
+ inffast.c
+ inffast.h
+ inffixed.h
+ inflate.c
+ inflate.h
+ inftrees.c
+ inftrees.h
+ Makefile
+0 .in
+2 make_vms.com
+ minigzip.c
+ projects/
+0 README.projects
+ visualc6/
+0 example.dsp
+ minigzip.dsp
+ README.txt
+ zlib.dsp
+ zlib.dsw
+3 README
+ trees.c
+ trees.h
+ uncompr.c
+ win32/
+0 DLL_FAQ.txt
+ Makefile.bor
+ Makefile.emx
+ Makefile.gcc
+ Makefile.msc
+ VisualC.txt
+ zlib1.rc
+ zlib.def
+2 zconf.h
+ zconf.in.h
+ zlib.3
+ zlib.h
+ zutil.c
+ zutil.h
+3 activeqt/
+0 activeqt.pro
+ container/
+0 container.pro
+ qaxbase.cpp
+ qaxbase.h
+ qaxdump.cpp
+ qaxobject.cpp
+ qaxobject.h
+ qaxscript.cpp
+ qaxscript.h
+ qaxscriptwrapper.cpp
+ qaxselect.cpp
+ qaxselect.h
+ qaxselect.ui
+ qaxwidget.cpp
+ qaxwidget.h
+2 control/
+0 control.pro
+ qaxaggregated.h
+ qaxbindable.cpp
+ qaxbindable.h
+ qaxfactory.cpp
+ qaxfactory.h
+ qaxmain.cpp
+ qaxserverbase.cpp
+ qaxserver.cpp
+ qaxserver.def
+ qaxserverdll.cpp
+ qaxserver.ico
+ qaxservermain.cpp
+ qaxserver.rc
+2 shared/
+0 qaxtypes.cpp
+ qaxtypes.h
+3 corelib/
+0 animation/
+0 animation.pri
+ qabstractanimation.cpp
+ qabstractanimation.h
+ qabstractanimation_p.h
+ qanimationgroup.cpp
+ qanimationgroup.h
+ qanimationgroup_p.h
+ qparallelanimationgroup.cpp
+ qparallelanimationgroup.h
+ qparallelanimationgroup_p.h
+ qpauseanimation.cpp
+ qpauseanimation.h
+ qpropertyanimation.cpp
+ qpropertyanimation.h
+ qpropertyanimation_p.h
+ qsequentialanimationgroup.cpp
+ qsequentialanimationgroup.h
+ qsequentialanimationgroup_p.h
+ qvariantanimation.cpp
+ qvariantanimation.h
+ qvariantanimation_p.h
+2 arch/
+0 alpha/
+0 arch.pri
+ qatomic_alpha.s
+2 arch.pri
+ arm/
+0 arch.pri
+ qatomic_arm.cpp
+2 armv6/
+0 arch.pri
+ qatomic_generic_armv6.cpp
+2 avr32/
+0 arch.pri
+2 bfin/
+0 arch.pri
+2 generic/
+0 arch.pri
+ qatomic_generic_unix.cpp
+ qatomic_generic_windows.cpp
+2 i386/
+0 arch.pri
+ qatomic_i386.s
+2 ia64/
+0 arch.pri
+ qatomic_ia64.s
+2 macosx/
+0 arch.pri
+ qatomic32_ppc.s
+2 mips/
+0 arch.pri
+ qatomic_mips32.s
+ qatomic_mips64.s
+2 parisc/
+0 arch.pri
+ qatomic_parisc.cpp
+ q_ldcw.s
+2 powerpc/
+0 arch.pri
+ qatomic32.s
+ qatomic64.s
+2 qatomic_alpha.h
+ qatomic_arch.h
+ qatomic_arm.h
+ qatomic_armv6.h
+ qatomic_avr32.h
+ qatomic_bfin.h
+ qatomic_bootstrap.h
+ qatomic_generic.h
+ qatomic_i386.h
+ qatomic_ia64.h
+ qatomic_macosx.h
+ qatomic_mips.h
+ qatomic_parisc.h
+ qatomic_powerpc.h
+ qatomic_s390.h
+ qatomic_sh4a.h
+ qatomic_sh.h
+ qatomic_sparc.h
+ qatomic_symbian.h
+ qatomic_vxworks.h
+ qatomic_windowsce.h
+ qatomic_windows.h
+ qatomic_x86_64.h
+ s390/
+0 arch.pri
+2 sh/
+ sh4a/
+0 arch.pri
+2 sh/arch.pri
+ sh/qatomic_sh.cpp
+ sparc/
+0 arch.pri
+ qatomic32.s
+ qatomic64.s
+ qatomic_sparc.cpp
+2 symbian/
+0 arch.pri
+ qatomic_symbian.cpp
+2 vxworks/
+0 arch.pri
+ qatomic_ppc.s
+2 windows/
+0 arch.pri
+2 x86_64/
+0 arch.pri
+ qatomic_sun.s
+3 codecs/
+0 codecs.pri
+ codecs.qdoc
+ qfontlaocodec.cpp
+ qfontlaocodec_p.h
+ qiconvcodec.cpp
+ qiconvcodec_p.h
+ qisciicodec.cpp
+ qisciicodec_p.h
+ qlatincodec.cpp
+ qlatincodec_p.h
+ qsimplecodec.cpp
+ qsimplecodec_p.h
+ qtextcodec.cpp
+ qtextcodec.h
+ qtextcodec_p.h
+ qtextcodecplugin.cpp
+ qtextcodecplugin.h
+ qtsciicodec.cpp
+ qtsciicodec_p.h
+ qutfcodec.cpp
+ qutfcodec_p.h
+2 concurrent/
+0 concurrent.pri
+ qfuture.cpp
+ qfuture.h
+ qfutureinterface.cpp
+ qfutureinterface.h
+ qfutureinterface_p.h
+ qfuturesynchronizer.cpp
+ qfuturesynchronizer.h
+ qfuturewatcher.cpp
+ qfuturewatcher.h
+ qfuturewatcher_p.h
+ qrunnable.cpp
+ qrunnable.h
+ qtconcurrentcompilertest.h
+ qtconcurrentexception.cpp
+ qtconcurrentexception.h
+ qtconcurrentfilter.cpp
+ qtconcurrentfilter.h
+ qtconcurrentfilterkernel.h
+ qtconcurrentfunctionwrappers.h
+ qtconcurrentiteratekernel.cpp
+ qtconcurrentiteratekernel.h
+ qtconcurrentmap.cpp
+ qtconcurrentmap.h
+ qtconcurrentmapkernel.h
+ qtconcurrentmedian.h
+ qtconcurrentreducekernel.h
+ qtconcurrentresultstore.cpp
+ qtconcurrentresultstore.h
+ qtconcurrentrunbase.h
+ qtconcurrentrun.cpp
+ qtconcurrentrun.h
+ qtconcurrentstoredfunctioncall.h
+ qtconcurrentthreadengine.cpp
+ qtconcurrentthreadengine.h
+ qthreadpool.cpp
+ qthreadpool.h
+ qthreadpool_p.h
+2 corelib.pro
+ eval.pri
+ global/
+0 global.pri
+ qconfig-dist.h
+ qconfig-large.h
+ qconfig-medium.h
+ qconfig-minimal.h
+ qconfig-small.h
+ qendian.h
+ qendian.qdoc
+ qfeatures.h
+ qfeatures.txt
+ qglobal.cpp
+ qglobal.h
+ qlibraryinfo.cpp
+ qlibraryinfo.h
+ qmalloc.cpp
+ qnamespace.h
+ qnamespace.qdoc
+ qnumeric.cpp
+ qnumeric.h
+ qnumeric_p.h
+ qt_pch.h
+ qt_windows.h
+2 io/
+0 io.pri
+ qabstractfileengine.cpp
+ qabstractfileengine.h
+ qabstractfileengine_p.h
+ qbuffer.cpp
+ qbuffer.h
+ qdatastream.cpp
+ qdatastream.h
+ qdatastream_p.h
+ qdebug.cpp
+ qdebug.h
+ qdir.cpp
+ qdir.h
+ qdiriterator.cpp
+ qdiriterator.h
+ qfile.cpp
+ qfile.h
+ qfileinfo.cpp
+ qfileinfo.h
+ qfileinfo_p.h
+ qfile_p.h
+ qfilesystemwatcher.cpp
+ qfilesystemwatcher_dnotify.cpp
+ qfilesystemwatcher_dnotify_p.h
+ qfilesystemwatcher_fsevents.cpp
+ qfilesystemwatcher_fsevents_p.h
+ qfilesystemwatcher.h
+ qfilesystemwatcher_inotify.cpp
+ qfilesystemwatcher_inotify_p.h
+ qfilesystemwatcher_kqueue.cpp
+ qfilesystemwatcher_kqueue_p.h
+ qfilesystemwatcher_p.h
+ qfilesystemwatcher_symbian.cpp
+ qfilesystemwatcher_symbian_p.h
+ qfilesystemwatcher_win.cpp
+ qfilesystemwatcher_win_p.h
+ qfsfileengine.cpp
+ qfsfileengine.h
+ qfsfileengine_iterator.cpp
+ qfsfileengine_iterator_p.h
+ qfsfileengine_iterator_unix.cpp
+ qfsfileengine_iterator_win.cpp
+ qfsfileengine_p.h
+ qfsfileengine_unix.cpp
+ qfsfileengine_win.cpp
+ qiodevice.cpp
+ qiodevice.h
+ qiodevice_p.h
+ qnoncontiguousbytedevice.cpp
+ qnoncontiguousbytedevice_p.h
+ qprocess.cpp
+ qprocess.h
+ qprocess_p.h
+ qprocess_symbian.cpp
+ qprocess_unix.cpp
+ qprocess_win.cpp
+ qresource.cpp
+ qresource.h
+ qresource_iterator.cpp
+ qresource_iterator_p.h
+ qresource_p.h
+ qsettings.cpp
+ qsettings.h
+ qsettings_mac.cpp
+ qsettings_p.h
+ qsettings_win.cpp
+ qtemporaryfile.cpp
+ qtemporaryfile.h
+ qtextstream.cpp
+ qtextstream.h
+ qurl.cpp
+ qurl.h
+ qwindowspipewriter.cpp
+ qwindowspipewriter_p.h
+2 kernel/
+0 kernel.pri
+ qabstracteventdispatcher.cpp
+ qabstracteventdispatcher.h
+ qabstracteventdispatcher_p.h
+ qabstractitemmodel.cpp
+ qabstractitemmodel.h
+ qabstractitemmodel_p.h
+ qbasictimer.cpp
+ qbasictimer.h
+ qcoreapplication.cpp
+ qcoreapplication.h
+ qcoreapplication_mac.cpp
+ qcoreapplication_p.h
+ qcoreapplication_win.cpp
+ qcorecmdlineargs_p.h
+ qcoreevent.cpp
+ qcoreevent.h
+ qcoreglobaldata.cpp
+ qcoreglobaldata_p.h
+ qcore_mac.cpp
+ qcore_mac_p.h
+ qcore_symbian_p.cpp
+ qcore_symbian_p.h
+ qcore_unix.cpp
+ qcore_unix_p.h
+ qcrashhandler.cpp
+ qcrashhandler_p.h
+ qeventdispatcher_glib.cpp
+ qeventdispatcher_glib_p.h
+ qeventdispatcher_symbian.cpp
+ qeventdispatcher_symbian_p.h
+ qeventdispatcher_unix.cpp
+ qeventdispatcher_unix_p.h
+ qeventdispatcher_win.cpp
+ qeventdispatcher_win_p.h
+ qeventloop.cpp
+ qeventloop.h
+ qfunctions_p.h
+ qfunctions_vxworks.cpp
+ qfunctions_vxworks.h
+ qfunctions_wince.cpp
+ qfunctions_wince.h
+ qguard_p.h
+ qmath.cpp
+ qmath.h
+ qmetaobject.cpp
+ qmetaobject.h
+ qmetaobject_p.h
+ qmetatype.cpp
+ qmetatype.h
+ qmimedata.cpp
+ qmimedata.h
+ qobjectcleanuphandler.cpp
+ qobjectcleanuphandler.h
+ qobject.cpp
+ qobjectdefs.h
+ qobject.h
+ qobject_p.h
+ qpointer.cpp
+ qpointer.h
+ qsharedmemory.cpp
+ qsharedmemory.h
+ qsharedmemory_p.h
+ qsharedmemory_symbian.cpp
+ qsharedmemory_unix.cpp
+ qsharedmemory_win.cpp
+ qsignalmapper.cpp
+ qsignalmapper.h
+ qsocketnotifier.cpp
+ qsocketnotifier.h
+ qsystemsemaphore.cpp
+ qsystemsemaphore.h
+ qsystemsemaphore_p.h
+ qsystemsemaphore_symbian.cpp
+ qsystemsemaphore_unix.cpp
+ qsystemsemaphore_win.cpp
+ qtcore_eval.cpp
+ qtimer.cpp
+ qtimer.h
+ qtranslator.cpp
+ qtranslator.h
+ qtranslator_p.h
+ qvariant.cpp
+ qvariant.h
+ qvariant_p.h
+ qwineventnotifier_p.cpp
+ qwineventnotifier_p.h
+2 plugin/
+0 plugin.pri
+ qfactoryinterface.h
+ qfactoryloader.cpp
+ qfactoryloader_p.h
+ qlibrary.cpp
+ qlibrary.h
+ qlibrary_p.h
+ qlibrary_unix.cpp
+ qlibrary_win.cpp
+ qplugin.h
+ qpluginloader.cpp
+ qpluginloader.h
+ qplugin.qdoc
+ quuid.cpp
+ quuid.h
+2 QtCore.dynlist
+ statemachine/
+0 qabstractstate.cpp
+ qabstractstate.h
+ qabstractstate_p.h
+ qabstracttransition.cpp
+ qabstracttransition.h
+ qabstracttransition_p.h
+ qeventtransition.cpp
+ qeventtransition.h
+ qeventtransition_p.h
+ qfinalstate.cpp
+ qfinalstate.h
+ qhistorystate.cpp
+ qhistorystate.h
+ qhistorystate_p.h
+ qsignaleventgenerator_p.h
+ qsignaltransition.cpp
+ qsignaltransition.h
+ qsignaltransition_p.h
+ qstate.cpp
+ qstate.h
+ qstatemachine.cpp
+ qstatemachine.h
+ qstatemachine_p.h
+ qstate_p.h
+ statemachine.pri
+2 thread/
+0 qatomic.cpp
+ qatomic.h
+ qbasicatomic.h
+ qmutex.cpp
+ qmutex.h
+ qmutex_p.h
+ qmutexpool.cpp
+ qmutexpool_p.h
+ qmutex_unix.cpp
+ qmutex_win.cpp
+ qorderedmutexlocker_p.h
+ qreadwritelock.cpp
+ qreadwritelock.h
+ qreadwritelock_p.h
+ qsemaphore.cpp
+ qsemaphore.h
+ qthread.cpp
+ qthread.h
+ qthread_p.h
+ qthreadstorage.cpp
+ qthreadstorage.h
+ qthread_unix.cpp
+ qthread_win.cpp
+ qwaitcondition.h
+ qwaitcondition.qdoc
+ qwaitcondition_unix.cpp
+ qwaitcondition_win.cpp
+ thread.pri
+2 tools/
+0 qalgorithms.h
+ qalgorithms.qdoc
+ qbitarray.cpp
+ qbitarray.h
+ qbytearray.cpp
+ qbytearray.h
+ qbytearraymatcher.cpp
+ qbytearraymatcher.h
+ qbytedata_p.h
+ qcache.h
+ qcache.qdoc
+ qchar.cpp
+ qchar.h
+ qcontainerfwd.h
+ qcontiguouscache.cpp
+ qcontiguouscache.h
+ qcryptographichash.cpp
+ qcryptographichash.h
+ qdatetime.cpp
+ qdatetime.h
+ qdatetime_p.h
+ qeasingcurve.cpp
+ qeasingcurve.h
+ qharfbuzz.cpp
+ qharfbuzz_p.h
+ qhash.cpp
+ qhash.h
+ qiterator.h
+ qiterator.qdoc
+ qline.cpp
+ qline.h
+ qlinkedlist.cpp
+ qlinkedlist.h
+ qlist.cpp
+ qlist.h
+ qlocale.cpp
+ qlocale_data_p.h
+ qlocale.h
+ qlocale_p.h
+ qlocale_symbian.cpp
+ qmap.cpp
+ qmap.h
+ qmargins.cpp
+ qmargins.h
+ qpair.h
+ qpair.qdoc
+ qpodlist_p.h
+ qpoint.cpp
+ qpoint.h
+ qqueue.cpp
+ qqueue.h
+ qrect.cpp
+ qrect.h
+ qregexp.cpp
+ qregexp.h
+ qringbuffer_p.h
+ qscopedpointer.cpp
+ qscopedpointer.h
+ qscopedpointer_p.h
+ qset.h
+ qset.qdoc
+ qshareddata.cpp
+ qshareddata.h
+ qsharedpointer.cpp
+ qsharedpointer.h
+ qsharedpointer_impl.h
+ qsize.cpp
+ qsize.h
+ qstack.cpp
+ qstack.h
+ qstringbuilder.cpp
+ qstringbuilder.h
+ qstring.cpp
+ qstring.h
+ qstringlist.cpp
+ qstringlist.h
+ qstringmatcher.cpp
+ qstringmatcher.h
+ qtextboundaryfinder.cpp
+ qtextboundaryfinder.h
+ qtimeline.cpp
+ qtimeline.h
+ qtools_p.h
+ qunicodetables.cpp
+ qunicodetables_p.h
+ qvarlengtharray.h
+ qvarlengtharray.qdoc
+ qvector.cpp
+ qvector.h
+ qvsnprintf.cpp
+ tools.pri
+2 xml/
+0 .gitignore
+ make-parser.sh
+ qxmlstream.cpp
+ qxmlstream.g
+ qxmlstream.h
+ qxmlstream_p.h
+ qxmlutils.cpp
+ qxmlutils_p.h
+ xml.pri
+3 dbus/
+0 dbus.pro
+ qdbusabstractadaptor.cpp
+ qdbusabstractadaptor.h
+ qdbusabstractadaptor_p.h
+ qdbusabstractinterface.cpp
+ qdbusabstractinterface.h
+ qdbusabstractinterface_p.h
+ qdbusargument.cpp
+ qdbusargument.h
+ qdbusargument_p.h
+ qdbusconnection.cpp
+ qdbusconnection.h
+ qdbusconnectioninterface.cpp
+ qdbusconnectioninterface.h
+ qdbusconnection_p.h
+ qdbuscontext.cpp
+ qdbuscontext.h
+ qdbuscontext_p.h
+ qdbusdemarshaller.cpp
+ qdbuserror.cpp
+ qdbuserror.h
+ qdbusextratypes.cpp
+ qdbusextratypes.h
+ qdbusintegrator.cpp
+ qdbusintegrator_p.h
+ qdbusinterface.cpp
+ qdbusinterface.h
+ qdbusinterface_p.h
+ qdbusinternalfilters.cpp
+ qdbusintrospection.cpp
+ qdbusintrospection_p.h
+ qdbusmacros.h
+ qdbusmarshaller.cpp
+ qdbusmessage.cpp
+ qdbusmessage.h
+ qdbusmessage_p.h
+ qdbusmetaobject.cpp
+ qdbusmetaobject_p.h
+ qdbusmetatype.cpp
+ qdbusmetatype.h
+ qdbusmetatype_p.h
+ qdbusmisc.cpp
+ qdbuspendingcall.cpp
+ qdbuspendingcall.h
+ qdbuspendingcall_p.h
+ qdbuspendingreply.cpp
+ qdbuspendingreply.h
+ qdbusreply.cpp
+ qdbusreply.h
+ qdbusserver.cpp
+ qdbusserver.h
+ qdbusservicewatcher.cpp
+ qdbusservicewatcher.h
+ qdbus_symbols.cpp
+ qdbus_symbols_p.h
+ qdbusthreaddebug_p.h
+ qdbusutil.cpp
+ qdbusutil_p.h
+ qdbusxmlgenerator.cpp
+ qdbusxmlparser.cpp
+ qdbusxmlparser_p.h
+2 gui/
+0 accessible/
+0 accessible.pri
+ qaccessible2.cpp
+ qaccessible2.h
+ qaccessiblebridge.cpp
+ qaccessiblebridge.h
+ qaccessible.cpp
+ qaccessible.h
+ qaccessible_mac_carbon.cpp
+ qaccessible_mac_cocoa.mm
+ qaccessible_mac.mm
+ qaccessible_mac_p.h
+ qaccessibleobject.cpp
+ qaccessibleobject.h
+ qaccessibleplugin.cpp
+ qaccessibleplugin.h
+ qaccessible_unix.cpp
+ qaccessiblewidget.cpp
+ qaccessiblewidget.h
+ qaccessible_win.cpp
+2 animation/
+0 animation.pri
+ qguivariantanimation.cpp
+2 dialogs/
+0 dialogs.pri
+ images/
+0 fit-page-24.png
+ fit-page-32.png
+ fit-width-24.png
+ fit-width-32.png
+ go-first-24.png
+ go-first-32.png
+ go-last-24.png
+ go-last-32.png
+ go-next-24.png
+ go-next-32.png
+ go-previous-24.png
+ go-previous-32.png
+ layout-landscape-24.png
+ layout-landscape-32.png
+ layout-portrait-24.png
+ layout-portrait-32.png
+ page-setup-24.png
+ page-setup-32.png
+ print-24.png
+ print-32.png
+ qtlogo-64.png
+ status-color.png
+ status-gray-scale.png
+ view-page-multi-24.png
+ view-page-multi-32.png
+ view-page-one-24.png
+ view-page-one-32.png
+ view-page-sided-24.png
+ view-page-sided-32.png
+ zoom-in-24.png
+ zoom-in-32.png
+ zoom-out-24.png
+ zoom-out-32.png
+2 qabstractpagesetupdialog.cpp
+ qabstractpagesetupdialog.h
+ qabstractpagesetupdialog_p.h
+ qabstractprintdialog.cpp
+ qabstractprintdialog.h
+ qabstractprintdialog_p.h
+ qcolordialog.cpp
+ qcolordialog.h
+ qcolordialog_mac.mm
+ qcolordialog_p.h
+ qdialog.cpp
+ qdialog.h
+ qdialog_p.h
+ qdialogsbinarycompat_win.cpp
+ qerrormessage.cpp
+ qerrormessage.h
+ qfiledialog.cpp
+ qfiledialog_embedded.ui
+ qfiledialog.h
+ qfiledialog_mac.mm
+ qfiledialog_p.h
+ qfiledialog.ui
+ qfiledialog_win.cpp
+ qfileinfogatherer.cpp
+ qfileinfogatherer_p.h
+ qfilesystemmodel.cpp
+ qfilesystemmodel.h
+ qfilesystemmodel_p.h
+ qfontdialog.cpp
+ qfontdialog.h
+ qfontdialog_mac.mm
+ qfontdialog_p.h
+ qfscompleter_p.h
+ qinputdialog.cpp
+ qinputdialog.h
+ qmessagebox.cpp
+ qmessagebox.h
+ qmessagebox.qrc
+ qnspanelproxy_mac.mm
+ qpagesetupdialog.cpp
+ qpagesetupdialog.h
+ qpagesetupdialog_mac.mm
+ qpagesetupdialog_unix.cpp
+ qpagesetupdialog_unix_p.h
+ qpagesetupdialog_win.cpp
+ qpagesetupwidget.ui
+ qprintdialog.h
+ qprintdialog_mac.mm
+ qprintdialog.qdoc
+ qprintdialog.qrc
+ qprintdialog_qws.cpp
+ qprintdialog_unix.cpp
+ qprintdialog_win.cpp
+ qprintpreviewdialog.cpp
+ qprintpreviewdialog.h
+ qprintpropertieswidget.ui
+ qprintsettingsoutput.ui
+ qprintwidget.ui
+ qprogressdialog.cpp
+ qprogressdialog.h
+ qsidebar.cpp
+ qsidebar_p.h
+ qwizard.cpp
+ qwizard.h
+ qwizard_win.cpp
+ qwizard_win_p.h
+2 effects/
+0 effects.pri
+ qgraphicseffect.cpp
+ qgraphicseffect.h
+ qgraphicseffect_p.h
+2 egl/
+0 egl.pri
+ qegl.cpp
+ qegl_p.h
+ qeglproperties.cpp
+ qeglproperties_p.h
+ qegl_qws.cpp
+ qegl_symbian.cpp
+ qegl_wince.cpp
+ qegl_x11.cpp
+2 embedded/
+0 directfb.pri
+ embedded.pri
+ qcopchannel_qws.cpp
+ qcopchannel_qws.h
+ qdecorationdefault_qws.cpp
+ qdecorationdefault_qws.h
+ qdecorationfactory_qws.cpp
+ qdecorationfactory_qws.h
+ qdecorationplugin_qws.cpp
+ qdecorationplugin_qws.h
+ qdecoration_qws.cpp
+ qdecoration_qws.h
+ qdecorationstyled_qws.cpp
+ qdecorationstyled_qws.h
+ qdecorationwindows_qws.cpp
+ qdecorationwindows_qws.h
+ qdirectpainter_qws.cpp
+ qdirectpainter_qws.h
+ qkbd_defaultmap_qws_p.h
+ qkbddriverfactory_qws.cpp
+ qkbddriverfactory_qws.h
+ qkbddriverplugin_qws.cpp
+ qkbddriverplugin_qws.h
+ qkbdlinuxinput_qws.cpp
+ qkbdlinuxinput_qws.h
+ qkbdqnx_qws.cpp
+ qkbdqnx_qws.h
+ qkbd_qws.cpp
+ qkbd_qws.h
+ qkbd_qws_p.h
+ qkbdtty_qws.cpp
+ qkbdtty_qws.h
+ qkbdum_qws.cpp
+ qkbdum_qws.h
+ qkbdvfb_qws.cpp
+ qkbdvfb_qws.h
+ qlock.cpp
+ qlock_p.h
+ qmousedriverfactory_qws.cpp
+ qmousedriverfactory_qws.h
+ qmousedriverplugin_qws.cpp
+ qmousedriverplugin_qws.h
+ qmouselinuxinput_qws.cpp
+ qmouselinuxinput_qws.h
+ qmouselinuxtp_qws.cpp
+ qmouselinuxtp_qws.h
+ qmousepc_qws.cpp
+ qmousepc_qws.h
+ qmouseqnx_qws.cpp
+ qmouseqnx_qws.h
+ qmouse_qws.cpp
+ qmouse_qws.h
+ qmousetslib_qws.cpp
+ qmousetslib_qws.h
+ qmousevfb_qws.cpp
+ qmousevfb_qws.h
+ qscreendriverfactory_qws.cpp
+ qscreendriverfactory_qws.h
+ qscreendriverplugin_qws.cpp
+ qscreendriverplugin_qws.h
+ qscreenlinuxfb_qws.cpp
+ qscreenlinuxfb_qws.h
+ qscreenmulti_qws.cpp
+ qscreenmulti_qws_p.h
+ qscreenproxy_qws.cpp
+ qscreenproxy_qws.h
+ qscreenqnx_qws.cpp
+ qscreenqnx_qws.h
+ qscreen_qws.cpp
+ qscreen_qws.h
+ qscreentransformed_qws.cpp
+ qscreentransformed_qws.h
+ qscreenvfb_qws.cpp
+ qscreenvfb_qws.h
+ qsoundqss_qws.cpp
+ qsoundqss_qws.h
+ qtransportauthdefs_qws.h
+ qtransportauth_qws.cpp
+ qtransportauth_qws.h
+ qtransportauth_qws_p.h
+ qunixsocket.cpp
+ qunixsocket_p.h
+ qunixsocketserver.cpp
+ qunixsocketserver_p.h
+ qvfbhdr.h
+ qwindowsystem_p.h
+ qwindowsystem_qws.cpp
+ qwindowsystem_qws.h
+ qwscommand_qws.cpp
+ qwscommand_qws_p.h
+ qwscursor_qws.cpp
+ qwscursor_qws.h
+ qwsdisplay_qws.h
+ qwsdisplay_qws_p.h
+ qwsembedwidget.cpp
+ qwsembedwidget.h
+ qwsevent_qws.cpp
+ qwsevent_qws.h
+ qwslock.cpp
+ qwslock_p.h
+ qwsmanager_p.h
+ qwsmanager_qws.cpp
+ qwsmanager_qws.h
+ qwsproperty_qws.cpp
+ qwsproperty_qws.h
+ qwsprotocolitem_qws.h
+ qwssharedmemory.cpp
+ qwssharedmemory_p.h
+ qwssignalhandler.cpp
+ qwssignalhandler_p.h
+ qwssocket_qws.cpp
+ qwssocket_qws.h
+ qwsutils_qws.h
+2 graphicsview/
+0 graphicsview.pri
+ qgraphicsanchorlayout.cpp
+ qgraphicsanchorlayout.h
+ qgraphicsanchorlayout_p.cpp
+ qgraphicsanchorlayout_p.h
+ qgraphicsgridlayout.cpp
+ qgraphicsgridlayout.h
+ qgraphicsitemanimation.cpp
+ qgraphicsitemanimation.h
+ qgraphicsitem.cpp
+ qgraphicsitem.h
+ qgraphicsitem_p.h
+ qgraphicslayout.cpp
+ qgraphicslayout.h
+ qgraphicslayoutitem.cpp
+ qgraphicslayoutitem.h
+ qgraphicslayoutitem_p.h
+ qgraphicslayout_p.cpp
+ qgraphicslayout_p.h
+ qgraphicslinearlayout.cpp
+ qgraphicslinearlayout.h
+ qgraphicsproxywidget.cpp
+ qgraphicsproxywidget.h
+ qgraphicsproxywidget_p.h
+ qgraphicsscene_bsp.cpp
+ qgraphicsscene_bsp_p.h
+ qgraphicsscenebsptreeindex.cpp
+ qgraphicsscenebsptreeindex_p.h
+ qgraphicsscene.cpp
+ qgraphicssceneevent.cpp
+ qgraphicssceneevent.h
+ qgraphicsscene.h
+ qgraphicssceneindex.cpp
+ qgraphicssceneindex_p.h
+ qgraphicsscenelinearindex.cpp
+ qgraphicsscenelinearindex_p.h
+ qgraphicsscene_p.h
+ qgraphicstransform.cpp
+ qgraphicstransform.h
+ qgraphicstransform_p.h
+ qgraphicsview.cpp
+ qgraphicsview.h
+ qgraphicsview_p.h
+ qgraphicswidget.cpp
+ qgraphicswidget.h
+ qgraphicswidget_p.cpp
+ qgraphicswidget_p.h
+ qgraph_p.h
+ qgridlayoutengine.cpp
+ qgridlayoutengine_p.h
+ qsimplex_p.cpp
+ qsimplex_p.h
+2 gui.pro
+ image/
+0 image.pri
+ qbitmap.cpp
+ qbitmap.h
+ qbmphandler.cpp
+ qbmphandler_p.h
+ qicon.cpp
+ qiconengine.cpp
+ qiconengine.h
+ qiconengineplugin.cpp
+ qiconengineplugin.h
+ qicon.h
+ qiconloader.cpp
+ qiconloader_p.h
+ qicon_p.h
+ qimage.cpp
+ qimage.h
+ qimageiohandler.cpp
+ qimageiohandler.h
+ qimage_p.h
+ qimagepixmapcleanuphooks.cpp
+ qimagepixmapcleanuphooks_p.h
+ qimagereader.cpp
+ qimagereader.h
+ qimagewriter.cpp
+ qimagewriter.h
+ qmovie.cpp
+ qmovie.h
+ qnativeimage.cpp
+ qnativeimage_p.h
+ qpaintengine_pic.cpp
+ qpaintengine_pic_p.h
+ qpicture.cpp
+ qpictureformatplugin.cpp
+ qpictureformatplugin.h
+ qpicture.h
+ qpicture_p.h
+ qpixmapcache.cpp
+ qpixmapcache.h
+ qpixmapcache_p.h
+ qpixmap.cpp
+ qpixmapdata.cpp
+ qpixmapdatafactory.cpp
+ qpixmapdatafactory_p.h
+ qpixmapdata_p.h
+ qpixmapfilter.cpp
+ qpixmapfilter_p.h
+ qpixmap.h
+ qpixmap_mac.cpp
+ qpixmap_mac_p.h
+ qpixmap_qws.cpp
+ qpixmap_raster.cpp
+ qpixmap_raster_p.h
+ qpixmap_s60.cpp
+ qpixmap_s60_p.h
+ qpixmap_win.cpp
+ qpixmap_x11.cpp
+ qpixmap_x11_p.h
+ qpnghandler.cpp
+ qpnghandler_p.h
+ qppmhandler.cpp
+ qppmhandler_p.h
+ qxbmhandler.cpp
+ qxbmhandler_p.h
+ qxpmhandler.cpp
+ qxpmhandler_p.h
+2 inputmethod/
+0 inputmethod.pri
+ qcoefepinputcontext_p.h
+ qcoefepinputcontext_s60.cpp
+ qinputcontext.cpp
+ qinputcontextfactory.cpp
+ qinputcontextfactory.h
+ qinputcontext.h
+ qinputcontext_p.h
+ qinputcontextplugin.cpp
+ qinputcontextplugin.h
+ qmacinputcontext_mac.cpp
+ qmacinputcontext_p.h
+ qwininputcontext_p.h
+ qwininputcontext_win.cpp
+ qwsinputcontext_p.h
+ qwsinputcontext_qws.cpp
+ qximinputcontext_p.h
+ qximinputcontext_x11.cpp
+2 itemviews/
+0 itemviews.pri
+ qabstractitemdelegate.cpp
+ qabstractitemdelegate.h
+ qabstractitemview.cpp
+ qabstractitemview.h
+ qabstractitemview_p.h
+ qabstractproxymodel.cpp
+ qabstractproxymodel.h
+ qabstractproxymodel_p.h
+ qbsptree.cpp
+ qbsptree_p.h
+ qcolumnview.cpp
+ qcolumnviewgrip.cpp
+ qcolumnviewgrip_p.h
+ qcolumnview.h
+ qcolumnview_p.h
+ qdatawidgetmapper.cpp
+ qdatawidgetmapper.h
+ qdirmodel.cpp
+ qdirmodel.h
+ qfileiconprovider.cpp
+ qfileiconprovider.h
+ qheaderview.cpp
+ qheaderview.h
+ qheaderview_p.h
+ qitemdelegate.cpp
+ qitemdelegate.h
+ qitemeditorfactory.cpp
+ qitemeditorfactory.h
+ qitemeditorfactory_p.h
+ qitemselectionmodel.cpp
+ qitemselectionmodel.h
+ qitemselectionmodel_p.h
+ qlistview.cpp
+ qlistview.h
+ qlistview_p.h
+ qlistwidget.cpp
+ qlistwidget.h
+ qlistwidget_p.h
+ qproxymodel.cpp
+ qproxymodel.h
+ qproxymodel_p.h
+ qsortfilterproxymodel.cpp
+ qsortfilterproxymodel.h
+ qstandarditemmodel.cpp
+ qstandarditemmodel.h
+ qstandarditemmodel_p.h
+ qstringlistmodel.cpp
+ qstringlistmodel.h
+ qstyleditemdelegate.cpp
+ qstyleditemdelegate.h
+ qtableview.cpp
+ qtableview.h
+ qtableview_p.h
+ qtablewidget.cpp
+ qtablewidget.h
+ qtablewidget_p.h
+ qtreeview.cpp
+ qtreeview.h
+ qtreeview_p.h
+ qtreewidget.cpp
+ qtreewidget.h
+ qtreewidgetitemiterator.cpp
+ qtreewidgetitemiterator.h
+ qtreewidgetitemiterator_p.h
+ qtreewidget_p.h
+ qwidgetitemdata_p.h
+2 kernel/
+0 kernel.pri
+ mac.pri
+ qaction.cpp
+ qactiongroup.cpp
+ qactiongroup.h
+ qaction.h
+ qaction_p.h
+ qapplication.cpp
+ qapplication.h
+ qapplication_mac.mm
+ qapplication_p.h
+ qapplication_qws.cpp
+ qapplication_s60.cpp
+ qapplication_win.cpp
+ qapplication_x11.cpp
+ qboxlayout.cpp
+ qboxlayout.h
+ qclipboard.cpp
+ qclipboard.h
+ qclipboard_mac.cpp
+ qclipboard_p.h
+ qclipboard_qws.cpp
+ qclipboard_s60.cpp
+ qclipboard_win.cpp
+ qclipboard_x11.cpp
+ qcocoaapplicationdelegate_mac.mm
+ qcocoaapplicationdelegate_mac_p.h
+ qcocoaapplication_mac.mm
+ qcocoaapplication_mac_p.h
+ qcocoamenuloader_mac.mm
+ qcocoamenuloader_mac_p.h
+ qcocoapanel_mac.mm
+ qcocoapanel_mac_p.h
+ qcocoaview_mac.mm
+ qcocoaview_mac_p.h
+ qcocoawindowcustomthemeframe_mac.mm
+ qcocoawindowcustomthemeframe_mac_p.h
+ qcocoawindowdelegate_mac.mm
+ qcocoawindowdelegate_mac_p.h
+ qcocoawindow_mac.mm
+ qcocoawindow_mac_p.h
+ qcursor.cpp
+ qcursor.h
+ qcursor_mac.mm
+ qcursor_p.h
+ qcursor_qws.cpp
+ qcursor_s60.cpp
+ qcursor_win.cpp
+ qcursor_x11.cpp
+ qdesktopwidget.cpp
+ qdesktopwidget.h
+ qdesktopwidget_mac.mm
+ qdesktopwidget_mac_p.h
+ qdesktopwidget.qdoc
+ qdesktopwidget_qws.cpp
+ qdesktopwidget_s60.cpp
+ qdesktopwidget_win.cpp
+ qdesktopwidget_x11.cpp
+ qdnd.cpp
+ qdnd_mac.mm
+ qdnd_p.h
+ qdnd_qws.cpp
+ qdnd_s60.cpp
+ qdnd_win.cpp
+ qdnd_x11.cpp
+ qdrag.cpp
+ qdrag.h
+ qevent.cpp
+ qeventdispatcher_glib_qws.cpp
+ qeventdispatcher_glib_qws_p.h
+ qeventdispatcher_mac.mm
+ qeventdispatcher_mac_p.h
+ qeventdispatcher_qws.cpp
+ qeventdispatcher_qws_p.h
+ qeventdispatcher_s60.cpp
+ qeventdispatcher_s60_p.h
+ qeventdispatcher_x11.cpp
+ qeventdispatcher_x11_p.h
+ qevent.h
+ qevent_p.h
+ qformlayout.cpp
+ qformlayout.h
+ qgesture.cpp
+ qgesture.h
+ qgesturemanager.cpp
+ qgesturemanager_p.h
+ qgesture_p.h
+ qgesturerecognizer.cpp
+ qgesturerecognizer.h
+ qgridlayout.cpp
+ qgridlayout.h
+ qguieventdispatcher_glib.cpp
+ qguieventdispatcher_glib_p.h
+ qguifunctions_wince.cpp
+ qguifunctions_wince.h
+ qguiplatformplugin.cpp
+ qguiplatformplugin_p.h
+ qguivariant.cpp
+ qkde.cpp
+ qkde_p.h
+ qkeymapper.cpp
+ qkeymapper_mac.cpp
+ qkeymapper_p.h
+ qkeymapper_qws.cpp
+ qkeymapper_s60.cpp
+ qkeymapper_win.cpp
+ qkeymapper_x11.cpp
+ qkeymapper_x11_p.cpp
+ qkeysequence.cpp
+ qkeysequence.h
+ qkeysequence_p.h
+ qlayout.cpp
+ qlayoutengine.cpp
+ qlayoutengine_p.h
+ qlayout.h
+ qlayoutitem.cpp
+ qlayoutitem.h
+ qlayout_p.h
+ qmacdefines_mac.h
+ qmacgesturerecognizer_mac.mm
+ qmacgesturerecognizer_mac_p.h
+ qmime.cpp
+ qmime.h
+ qmime_mac.cpp
+ qmime_win.cpp
+ qmotifdnd_x11.cpp
+ qmultitouch_mac.mm
+ qmultitouch_mac_p.h
+ qnsframeview_mac_p.h
+ qnsthemeframe_mac_p.h
+ qnstitledframe_mac_p.h
+ qole_win.cpp
+ qpalette.cpp
+ qpalette.h
+ qsessionmanager.h
+ qsessionmanager_qws.cpp
+ qshortcut.cpp
+ qshortcut.h
+ qshortcutmap.cpp
+ qshortcutmap_p.h
+ qsizepolicy.h
+ qsizepolicy.qdoc
+ qsoftkeymanager.cpp
+ qsoftkeymanager_p.h
+ qsound.cpp
+ qsound.h
+ qsound_mac.mm
+ qsound_p.h
+ qsound_qws.cpp
+ qsound_s60.cpp
+ qsound_win.cpp
+ qsound_x11.cpp
+ qstackedlayout.cpp
+ qstackedlayout.h
+ qstandardgestures.cpp
+ qstandardgestures_p.h
+ qt_cocoa_helpers_mac.mm
+ qt_cocoa_helpers_mac_p.h
+ qt_gui_pch.h
+ qt_mac.cpp
+ qt_mac_p.h
+ qtooltip.cpp
+ qtooltip.h
+ qt_s60_p.h
+ qt_x11_p.h
+ qwhatsthis.cpp
+ qwhatsthis.h
+ qwidgetaction.cpp
+ qwidgetaction.h
+ qwidgetaction_p.h
+ qwidget.cpp
+ qwidgetcreate_x11.cpp
+ qwidget.h
+ qwidget_mac.mm
+ qwidget_p.h
+ qwidget_qws.cpp
+ qwidget_s60.cpp
+ qwidget_wince.cpp
+ qwidget_win.cpp
+ qwidget_x11.cpp
+ qwindowdefs.h
+ qwindowdefs_win.h
+ qwinnativepangesturerecognizer_win.cpp
+ qwinnativepangesturerecognizer_win_p.h
+ qx11embed_x11.cpp
+ qx11embed_x11.h
+ qx11info_x11.cpp
+ qx11info_x11.h
+ symbian.pri
+ win.pri
+ x11.pri
+2 mac/
+0 images/
+0 copyarrowcursor.png
+ forbiddencursor.png
+ leopard-unified-toolbar-on.png
+ pluscursor.png
+ spincursor.png
+ waitcursor.png
+2 macresources.qrc
+ qt_menu.nib/
+0 classes.nib
+ info.nib
+ keyedobjects.nib
+3 math3d/
+0 math3d.pri
+ qgenericmatrix.cpp
+ qgenericmatrix.h
+ qmatrix4x4.cpp
+ qmatrix4x4.h
+ qquaternion.cpp
+ qquaternion.h
+ qvector2d.cpp
+ qvector2d.h
+ qvector3d.cpp
+ qvector3d.h
+ qvector4d.cpp
+ qvector4d.h
+2 painting/
+0 makepsheader.pl
+ painting.pri
+ qbackingstore.cpp
+ qbackingstore_p.h
+ qbezier.cpp
+ qbezier_p.h
+ qblendfunctions_armv6_rvct.s
+ qblendfunctions.cpp
+ qbrush.cpp
+ qbrush.h
+ qcolor.cpp
+ qcolor.h
+ qcolormap.h
+ qcolormap_mac.cpp
+ qcolormap.qdoc
+ qcolormap_qws.cpp
+ qcolormap_s60.cpp
+ qcolormap_win.cpp
+ qcolormap_x11.cpp
+ qcolor_p.cpp
+ qcolor_p.h
+ qcssutil.cpp
+ qcssutil_p.h
+ qcups.cpp
+ qcups_p.h
+ qdatabuffer_p.h
+ qdrawhelper_armv6_p.h
+ qdrawhelper_armv6_rvct.inc
+ qdrawhelper_armv6_rvct.s
+ qdrawhelper.cpp
+ qdrawhelper_iwmmxt.cpp
+ qdrawhelper_mmx3dnow.cpp
+ qdrawhelper_mmx.cpp
+ qdrawhelper_mmx_p.h
+ qdrawhelper_p.h
+ qdrawhelper_sse2.cpp
+ qdrawhelper_sse3dnow.cpp
+ qdrawhelper_sse.cpp
+ qdrawhelper_sse_p.h
+ qdrawhelper_x86_p.h
+ qdrawutil.cpp
+ qdrawutil.h
+ qemulationpaintengine.cpp
+ qemulationpaintengine_p.h
+ qfixed_p.h
+ qgraphicssystem.cpp
+ qgraphicssystemfactory.cpp
+ qgraphicssystemfactory_p.h
+ qgraphicssystem_mac.cpp
+ qgraphicssystem_mac_p.h
+ qgraphicssystem_p.h
+ qgraphicssystemplugin.cpp
+ qgraphicssystemplugin_p.h
+ qgraphicssystem_qws.cpp
+ qgraphicssystem_qws_p.h
+ qgraphicssystem_raster.cpp
+ qgraphicssystem_raster_p.h
+ qgrayraster.c
+ qgrayraster_p.h
+ qimagescale.cpp
+ qimagescale_p.h
+ qmath_p.h
+ qmatrix.cpp
+ qmatrix.h
+ qmemrotate.cpp
+ qmemrotate_p.h
+ qoutlinemapper.cpp
+ qoutlinemapper_p.h
+ qpaintbuffer.cpp
+ qpaintbuffer_p.h
+ qpaintdevice.cpp
+ qpaintdevice.h
+ qpaintdevice_mac.cpp
+ qpaintdevice.qdoc
+ qpaintdevice_qws.cpp
+ qpaintdevice_win.cpp
+ qpaintdevice_x11.cpp
+ qpaintengine_alpha.cpp
+ qpaintengine_alpha_p.h
+ qpaintengine.cpp
+ qpaintengineex.cpp
+ qpaintengineex_p.h
+ qpaintengine.h
+ qpaintengine_mac.cpp
+ qpaintengine_mac_p.h
+ qpaintengine_p.h
+ qpaintengine_preview.cpp
+ qpaintengine_preview_p.h
+ qpaintengine_raster.cpp
+ qpaintengine_raster_p.h
+ qpaintengine_s60.cpp
+ qpaintengine_s60_p.h
+ qpaintengine_x11.cpp
+ qpaintengine_x11_p.h
+ qpainter.cpp
+ qpainter.h
+ qpainterpath.cpp
+ qpainterpath.h
+ qpainterpath_p.h
+ qpainter_p.h
+ qpathclipper.cpp
+ qpathclipper_p.h
+ qpdf.cpp
+ qpdf_p.h
+ qpen.cpp
+ qpen.h
+ qpen_p.h
+ qpolygonclipper_p.h
+ qpolygon.cpp
+ qpolygon.h
+ qprintengine.h
+ qprintengine_mac.mm
+ qprintengine_mac_p.h
+ qprintengine_pdf.cpp
+ qprintengine_pdf_p.h
+ qprintengine_ps.cpp
+ qprintengine_ps_p.h
+ qprintengine_qws.cpp
+ qprintengine_qws_p.h
+ qprintengine_win.cpp
+ qprintengine_win_p.h
+ qprinter.cpp
+ qprinter.h
+ qprinterinfo.h
+ qprinterinfo_mac.cpp
+ qprinterinfo.qdoc
+ qprinterinfo_unix.cpp
+ qprinterinfo_unix_p.h
+ qprinterinfo_win.cpp
+ qprinter_p.h
+ qpsprinter.agl
+ qpsprinter.ps
+ qrasterdefs_p.h
+ qrasterizer.cpp
+ qrasterizer_p.h
+ qregion.cpp
+ qregion.h
+ qregion_mac.cpp
+ qregion_qws.cpp
+ qregion_s60.cpp
+ qregion_win.cpp
+ qregion_x11.cpp
+ qrgb.h
+ qstroker.cpp
+ qstroker_p.h
+ qstylepainter.cpp
+ qstylepainter.h
+ qtessellator.cpp
+ qtessellator_p.h
+ qtextureglyphcache.cpp
+ qtextureglyphcache_p.h
+ qtransform.cpp
+ qtransform.h
+ qvectorpath_p.h
+ qwindowsurface.cpp
+ qwindowsurface_mac.cpp
+ qwindowsurface_mac_p.h
+ qwindowsurface_p.h
+ qwindowsurface_qws.cpp
+ qwindowsurface_qws_p.h
+ qwindowsurface_raster.cpp
+ qwindowsurface_raster_p.h
+ qwindowsurface_s60.cpp
+ qwindowsurface_s60_p.h
+ qwindowsurface_x11.cpp
+ qwindowsurface_x11_p.h
+ qwmatrix.h
+2 QtGui.dynlist
+ s60framework/
+0 qs60mainapplication.cpp
+ qs60mainapplication.h
+ qs60mainapplication_p.h
+ qs60mainappui.cpp
+ qs60mainappui.h
+ qs60maindocument.cpp
+ qs60maindocument.h
+ s60framework.pri
+ s60main.rss
+2 statemachine/
+0 qbasickeyeventtransition.cpp
+ qbasickeyeventtransition_p.h
+ qbasicmouseeventtransition.cpp
+ qbasicmouseeventtransition_p.h
+ qguistatemachine.cpp
+ qkeyeventtransition.cpp
+ qkeyeventtransition.h
+ qmouseeventtransition.cpp
+ qmouseeventtransition.h
+ statemachine.pri
+2 styles/
+0 images/
+0 cdr-128.png
+ cdr-16.png
+ cdr-32.png
+ closedock-16.png
+ closedock-down-16.png
+ computer-16.png
+ computer-32.png
+ defaults60theme.blob
+ desktop-16.png
+ desktop-32.png
+ dirclosed-128.png
+ dirclosed-16.png
+ dirclosed-32.png
+ dirlink-128.png
+ dirlink-16.png
+ dirlink-32.png
+ diropen-128.png
+ diropen-16.png
+ diropen-32.png
+ dockdock-16.png
+ dockdock-down-16.png
+ down-128.png
+ down-16.png
+ down-32.png
+ dvd-128.png
+ dvd-16.png
+ dvd-32.png
+ file-128.png
+ file-16.png
+ file-32.png
+ filecontents-128.png
+ filecontents-16.png
+ filecontents-32.png
+ fileinfo-128.png
+ fileinfo-16.png
+ fileinfo-32.png
+ filelink-128.png
+ filelink-16.png
+ filelink-32.png
+ floppy-128.png
+ floppy-16.png
+ floppy-32.png
+ fontbitmap-16.png
+ fonttruetype-16.png
+ harddrive-128.png
+ harddrive-16.png
+ harddrive-32.png
+ left-128.png
+ left-16.png
+ left-32.png
+ media-pause-16.png
+ media-pause-32.png
+ media-play-16.png
+ media-play-32.png
+ media-seek-backward-16.png
+ media-seek-backward-32.png
+ media-seek-forward-16.png
+ media-seek-forward-32.png
+ media-skip-backward-16.png
+ media-skip-backward-32.png
+ media-skip-forward-16.png
+ media-skip-forward-32.png
+ media-stop-16.png
+ media-stop-32.png
+ media-volume-16.png
+ media-volume-muted-16.png
+ networkdrive-128.png
+ networkdrive-16.png
+ networkdrive-32.png
+ newdirectory-128.png
+ newdirectory-16.png
+ newdirectory-32.png
+ parentdir-128.png
+ parentdir-16.png
+ parentdir-32.png
+ refresh-24.png
+ refresh-32.png
+ right-128.png
+ right-16.png
+ right-32.png
+ standardbutton-apply-128.png
+ standardbutton-apply-16.png
+ standardbutton-apply-32.png
+ standardbutton-cancel-128.png
+ standardbutton-cancel-16.png
+ standardbutton-cancel-32.png
+ standardbutton-clear-128.png
+ standardbutton-clear-16.png
+ standardbutton-clear-32.png
+ standardbutton-close-128.png
+ standardbutton-close-16.png
+ standardbutton-close-32.png
+ standardbutton-closetab-16.png
+ standardbutton-closetab-down-16.png
+ standardbutton-closetab-hover-16.png
+ standardbutton-delete-128.png
+ standardbutton-delete-16.png
+ standardbutton-delete-32.png
+ standardbutton-help-128.png
+ standardbutton-help-16.png
+ standardbutton-help-32.png
+ standardbutton-no-128.png
+ standardbutton-no-16.png
+ standardbutton-no-32.png
+ standardbutton-ok-128.png
+ standardbutton-ok-16.png
+ standardbutton-ok-32.png
+ standardbutton-open-128.png
+ standardbutton-open-16.png
+ standardbutton-open-32.png
+ standardbutton-save-128.png
+ standardbutton-save-16.png
+ standardbutton-save-32.png
+ standardbutton-yes-128.png
+ standardbutton-yes-16.png
+ standardbutton-yes-32.png
+ stop-24.png
+ stop-32.png
+ trash-128.png
+ trash-16.png
+ trash-32.png
+ up-128.png
+ up-16.png
+ up-32.png
+ viewdetailed-128.png
+ viewdetailed-16.png
+ viewdetailed-32.png
+ viewlist-128.png
+ viewlist-16.png
+ viewlist-32.png
+2 qcdestyle.cpp
+ qcdestyle.h
+ qcleanlooksstyle.cpp
+ qcleanlooksstyle.h
+ qcleanlooksstyle_p.h
+ qcommonstyle.cpp
+ qcommonstyle.h
+ qcommonstyle_p.h
+ qcommonstylepixmaps_p.h
+ qgtkpainter.cpp
+ qgtkpainter_p.h
+ qgtkstyle.cpp
+ qgtkstyle.h
+ qgtkstyle_p.cpp
+ qgtkstyle_p.h
+ qmacstyle_mac.h
+ qmacstyle_mac.mm
+ qmacstylepixmaps_mac_p.h
+ qmacstyle.qdoc
+ qmotifstyle.cpp
+ qmotifstyle.h
+ qmotifstyle_p.h
+ qplastiquestyle.cpp
+ qplastiquestyle.h
+ qproxystyle.cpp
+ qproxystyle.h
+ qproxystyle_p.h
+ qs60style.cpp
+ qs60style.h
+ qs60style_p.h
+ qs60style_s60.cpp
+ qs60style_simulated.cpp
+ qstyle.cpp
+ qstylefactory.cpp
+ qstylefactory.h
+ qstyle.h
+ qstylehelper.cpp
+ qstylehelper_p.h
+ qstyleoption.cpp
+ qstyleoption.h
+ qstyle_p.h
+ qstyleplugin.cpp
+ qstyleplugin.h
+ qstyle.qrc
+ qstyle_s60_simulated.qrc
+ qstylesheetstyle.cpp
+ qstylesheetstyle_default.cpp
+ qstylesheetstyle_p.h
+ qstyle_wince.qrc
+ qwindowscestyle.cpp
+ qwindowscestyle.h
+ qwindowscestyle_p.h
+ qwindowsmobilestyle.cpp
+ qwindowsmobilestyle.h
+ qwindowsmobilestyle_p.h
+ qwindowsstyle.cpp
+ qwindowsstyle.h
+ qwindowsstyle_p.h
+ qwindowsvistastyle.cpp
+ qwindowsvistastyle.h
+ qwindowsvistastyle_p.h
+ qwindowsxpstyle.cpp
+ qwindowsxpstyle.h
+ qwindowsxpstyle_p.h
+ styles.pri
+2 symbian/
+0 images/
+0 blank.png
+ busy12.png
+ busy3.png
+ busy6.png
+ busy9.png
+ closehand.png
+ cross.png
+ forbidden.png
+ handpoint.png
+ ibeam.png
+ openhand.png
+ pointer.png
+ sizeall.png
+ sizebdiag.png
+ sizefdiag.png
+ sizehor.png
+ sizever.png
+ splith.png
+ splitv.png
+ uparrow.png
+ wait10.png
+ wait11.png
+ wait12.png
+ wait1.png
+ wait2.png
+ wait3.png
+ wait4.png
+ wait5.png
+ wait6.png
+ wait7.png
+ wait8.png
+ wait9.png
+ whatsthis.png
+2 qsymbianevent.cpp
+ qsymbianevent.h
+ symbianresources.qrc
+2 text/
+0 qabstractfontengine_p.h
+ qabstractfontengine_qws.cpp
+ qabstractfontengine_qws.h
+ qabstracttextdocumentlayout.cpp
+ qabstracttextdocumentlayout.h
+ qabstracttextdocumentlayout_p.h
+ qcssparser.cpp
+ qcssparser_p.h
+ qcssscanner.cpp
+ qfont.cpp
+ qfontdatabase.cpp
+ qfontdatabase.h
+ qfontdatabase_mac.cpp
+ qfontdatabase_qws.cpp
+ qfontdatabase_s60.cpp
+ qfontdatabase_win.cpp
+ qfontdatabase_x11.cpp
+ qfontengine.cpp
+ qfontengine_ft.cpp
+ qfontengine_ft_p.h
+ qfontengineglyphcache_p.h
+ qfontengine_mac.mm
+ qfontengine_p.h
+ qfontengine_qpf.cpp
+ qfontengine_qpf_p.h
+ qfontengine_qws.cpp
+ qfontengine_s60.cpp
+ qfontengine_s60_p.h
+ qfontengine_win.cpp
+ qfontengine_win_p.h
+ qfontengine_x11.cpp
+ qfontengine_x11_p.h
+ qfont.h
+ qfontinfo.h
+ qfont_mac.cpp
+ qfontmetrics.cpp
+ qfontmetrics.h
+ qfont_p.h
+ qfont_qws.cpp
+ qfont_s60.cpp
+ qfontsubset.cpp
+ qfontsubset_p.h
+ qfont_win.cpp
+ qfont_x11.cpp
+ qfragmentmap.cpp
+ qfragmentmap_p.h
+ qpfutil.cpp
+ qsyntaxhighlighter.cpp
+ qsyntaxhighlighter.h
+ qtextcontrol.cpp
+ qtextcontrol_p.h
+ qtextcontrol_p_p.h
+ qtextcursor.cpp
+ qtextcursor.h
+ qtextcursor_p.h
+ qtextdocument.cpp
+ qtextdocumentfragment.cpp
+ qtextdocumentfragment.h
+ qtextdocumentfragment_p.h
+ qtextdocument.h
+ qtextdocumentlayout.cpp
+ qtextdocumentlayout_p.h
+ qtextdocument_p.cpp
+ qtextdocument_p.h
+ qtextdocumentwriter.cpp
+ qtextdocumentwriter.h
+ qtextengine.cpp
+ qtextengine_mac.cpp
+ qtextengine_p.h
+ qtextformat.cpp
+ qtextformat.h
+ qtextformat_p.h
+ qtexthtmlparser.cpp
+ qtexthtmlparser_p.h
+ qtextimagehandler.cpp
+ qtextimagehandler_p.h
+ qtextlayout.cpp
+ qtextlayout.h
+ qtextlist.cpp
+ qtextlist.h
+ qtextobject.cpp
+ qtextobject.h
+ qtextobject_p.h
+ qtextodfwriter.cpp
+ qtextodfwriter_p.h
+ qtextoption.cpp
+ qtextoption.h
+ qtexttable.cpp
+ qtexttable.h
+ qtexttable_p.h
+ qzip.cpp
+ qzipreader_p.h
+ qzipwriter_p.h
+ text.pri
+2 util/
+0 qcompleter.cpp
+ qcompleter.h
+ qcompleter_p.h
+ qdesktopservices.cpp
+ qdesktopservices.h
+ qdesktopservices_mac.cpp
+ qdesktopservices_qws.cpp
+ qdesktopservices_s60.cpp
+ qdesktopservices_win.cpp
+ qdesktopservices_x11.cpp
+ qsystemtrayicon.cpp
+ qsystemtrayicon.h
+ qsystemtrayicon_mac.mm
+ qsystemtrayicon_p.h
+ qsystemtrayicon_qws.cpp
+ qsystemtrayicon_win.cpp
+ qsystemtrayicon_x11.cpp
+ qundogroup.cpp
+ qundogroup.h
+ qundostack.cpp
+ qundostack.h
+ qundostack_p.h
+ qundoview.cpp
+ qundoview.h
+ util.pri
+2 widgets/
+0 qabstractbutton.cpp
+ qabstractbutton.h
+ qabstractbutton_p.h
+ qabstractscrollarea.cpp
+ qabstractscrollarea.h
+ qabstractscrollarea_p.h
+ qabstractslider.cpp
+ qabstractslider.h
+ qabstractslider_p.h
+ qabstractspinbox.cpp
+ qabstractspinbox.h
+ qabstractspinbox_p.h
+ qbuttongroup.cpp
+ qbuttongroup.h
+ qcalendartextnavigator_p.h
+ qcalendarwidget.cpp
+ qcalendarwidget.h
+ qcheckbox.cpp
+ qcheckbox.h
+ qcocoamenu_mac.mm
+ qcocoamenu_mac_p.h
+ qcocoatoolbardelegate_mac.mm
+ qcocoatoolbardelegate_mac_p.h
+ qcombobox.cpp
+ qcombobox.h
+ qcombobox_p.h
+ qcommandlinkbutton.cpp
+ qcommandlinkbutton.h
+ qdatetimeedit.cpp
+ qdatetimeedit.h
+ qdatetimeedit_p.h
+ qdial.cpp
+ qdial.h
+ qdialogbuttonbox.cpp
+ qdialogbuttonbox.h
+ qdockarealayout.cpp
+ qdockarealayout_p.h
+ qdockwidget.cpp
+ qdockwidget.h
+ qdockwidget_p.h
+ qeffects.cpp
+ qeffects_p.h
+ qfocusframe.cpp
+ qfocusframe.h
+ qfontcombobox.cpp
+ qfontcombobox.h
+ qframe.cpp
+ qframe.h
+ qframe_p.h
+ qgroupbox.cpp
+ qgroupbox.h
+ qlabel.cpp
+ qlabel.h
+ qlabel_p.h
+ qlcdnumber.cpp
+ qlcdnumber.h
+ qlinecontrol.cpp
+ qlinecontrol_p.h
+ qlineedit.cpp
+ qlineedit.h
+ qlineedit_p.cpp
+ qlineedit_p.h
+ qmaccocoaviewcontainer_mac.h
+ qmaccocoaviewcontainer_mac.mm
+ qmacnativewidget_mac.h
+ qmacnativewidget_mac.mm
+ qmainwindow.cpp
+ qmainwindow.h
+ qmainwindowlayout.cpp
+ qmainwindowlayout_mac.mm
+ qmainwindowlayout_p.h
+ qmdiarea.cpp
+ qmdiarea.h
+ qmdiarea_p.h
+ qmdisubwindow.cpp
+ qmdisubwindow.h
+ qmdisubwindow_p.h
+ qmenubar.cpp
+ qmenubar.h
+ qmenubar_p.h
+ qmenu.cpp
+ qmenudata.cpp
+ qmenudata.h
+ qmenu.h
+ qmenu_mac.mm
+ qmenu_p.h
+ qmenu_symbian.cpp
+ qmenu_wince.cpp
+ qmenu_wince.rc
+ qmenu_wince_resource_p.h
+ qplaintextedit.cpp
+ qplaintextedit.h
+ qplaintextedit_p.h
+ qprintpreviewwidget.cpp
+ qprintpreviewwidget.h
+ qprogressbar.cpp
+ qprogressbar.h
+ qpushbutton.cpp
+ qpushbutton.h
+ qpushbutton_p.h
+ qradiobutton.cpp
+ qradiobutton.h
+ qrubberband.cpp
+ qrubberband.h
+ qscrollarea.cpp
+ qscrollarea.h
+ qscrollarea_p.h
+ qscrollbar.cpp
+ qscrollbar.h
+ qsizegrip.cpp
+ qsizegrip.h
+ qslider.cpp
+ qslider.h
+ qspinbox.cpp
+ qspinbox.h
+ qsplashscreen.cpp
+ qsplashscreen.h
+ qsplitter.cpp
+ qsplitter.h
+ qsplitter_p.h
+ qstackedwidget.cpp
+ qstackedwidget.h
+ qstatusbar.cpp
+ qstatusbar.h
+ qtabbar.cpp
+ qtabbar.h
+ qtabbar_p.h
+ qtabwidget.cpp
+ qtabwidget.h
+ qtextbrowser.cpp
+ qtextbrowser.h
+ qtextedit.cpp
+ qtextedit.h
+ qtextedit_p.h
+ qtoolbararealayout.cpp
+ qtoolbararealayout_p.h
+ qtoolbar.cpp
+ qtoolbarextension.cpp
+ qtoolbarextension_p.h
+ qtoolbar.h
+ qtoolbarlayout.cpp
+ qtoolbarlayout_p.h
+ qtoolbar_p.h
+ qtoolbarseparator.cpp
+ qtoolbarseparator_p.h
+ qtoolbox.cpp
+ qtoolbox.h
+ qtoolbutton.cpp
+ qtoolbutton.h
+ qvalidator.cpp
+ qvalidator.h
+ qwidgetanimator.cpp
+ qwidgetanimator_p.h
+ qwidgetresizehandler.cpp
+ qwidgetresizehandler_p.h
+ qworkspace.cpp
+ qworkspace.h
+ widgets.pri
+3 multimedia/
+0 audio/
+0 audio.pri
+ qaudio.cpp
+ qaudiodevicefactory.cpp
+ qaudiodevicefactory_p.h
+ qaudiodeviceinfo_alsa_p.cpp
+ qaudiodeviceinfo_alsa_p.h
+ qaudiodeviceinfo.cpp
+ qaudiodeviceinfo.h
+ qaudiodeviceinfo_mac_p.cpp
+ qaudiodeviceinfo_mac_p.h
+ qaudiodeviceinfo_win32_p.cpp
+ qaudiodeviceinfo_win32_p.h
+ qaudioengine.cpp
+ qaudioengine.h
+ qaudioengineplugin.cpp
+ qaudioengineplugin.h
+ qaudioformat.cpp
+ qaudioformat.h
+ qaudio.h
+ qaudioinput_alsa_p.cpp
+ qaudioinput_alsa_p.h
+ qaudioinput.cpp
+ qaudioinput.h
+ qaudioinput_mac_p.cpp
+ qaudioinput_mac_p.h
+ qaudioinput_win32_p.cpp
+ qaudioinput_win32_p.h
+ qaudio_mac.cpp
+ qaudio_mac_p.h
+ qaudiooutput_alsa_p.cpp
+ qaudiooutput_alsa_p.h
+ qaudiooutput.cpp
+ qaudiooutput.h
+ qaudiooutput_mac_p.cpp
+ qaudiooutput_mac_p.h
+ qaudiooutput_win32_p.cpp
+ qaudiooutput_win32_p.h
+2 multimedia.pro
+ video/
+0 qabstractvideobuffer.cpp
+ qabstractvideobuffer.h
+ qabstractvideobuffer_p.h
+ qabstractvideosurface.cpp
+ qabstractvideosurface.h
+ qabstractvideosurface_p.h
+ qimagevideobuffer.cpp
+ qimagevideobuffer_p.h
+ qmemoryvideobuffer.cpp
+ qmemoryvideobuffer_p.h
+ qvideoframe.cpp
+ qvideoframe.h
+ qvideosurfaceformat.cpp
+ qvideosurfaceformat.h
+ video.pri
+3 network/
+0 access/
+0 access.pri
+ qabstractnetworkcache.cpp
+ qabstractnetworkcache.h
+ qabstractnetworkcache_p.h
+ qftp.cpp
+ qftp.h
+ qhttp.cpp
+ qhttp.h
+ qhttpnetworkconnectionchannel.cpp
+ qhttpnetworkconnectionchannel_p.h
+ qhttpnetworkconnection.cpp
+ qhttpnetworkconnection_p.h
+ qhttpnetworkheader.cpp
+ qhttpnetworkheader_p.h
+ qhttpnetworkreply.cpp
+ qhttpnetworkreply_p.h
+ qhttpnetworkrequest.cpp
+ qhttpnetworkrequest_p.h
+ qnetworkaccessbackend.cpp
+ qnetworkaccessbackend_p.h
+ qnetworkaccesscachebackend.cpp
+ qnetworkaccesscachebackend_p.h
+ qnetworkaccesscache.cpp
+ qnetworkaccesscache_p.h
+ qnetworkaccessdatabackend.cpp
+ qnetworkaccessdatabackend_p.h
+ qnetworkaccessdebugpipebackend.cpp
+ qnetworkaccessdebugpipebackend_p.h
+ qnetworkaccessfilebackend.cpp
+ qnetworkaccessfilebackend_p.h
+ qnetworkaccessftpbackend.cpp
+ qnetworkaccessftpbackend_p.h
+ qnetworkaccesshttpbackend.cpp
+ qnetworkaccesshttpbackend_p.h
+ qnetworkaccessmanager.cpp
+ qnetworkaccessmanager.h
+ qnetworkaccessmanager_p.h
+ qnetworkcookie.cpp
+ qnetworkcookie.h
+ qnetworkcookiejar.cpp
+ qnetworkcookiejar.h
+ qnetworkcookiejar_p.h
+ qnetworkcookie_p.h
+ qnetworkdiskcache.cpp
+ qnetworkdiskcache.h
+ qnetworkdiskcache_p.h
+ qnetworkreply.cpp
+ qnetworkreply.h
+ qnetworkreplyimpl.cpp
+ qnetworkreplyimpl_p.h
+ qnetworkreply_p.h
+ qnetworkrequest.cpp
+ qnetworkrequest.h
+ qnetworkrequest_p.h
+2 kernel/
+0 kernel.pri
+ qauthenticator.cpp
+ qauthenticator.h
+ qauthenticator_p.h
+ qhostaddress.cpp
+ qhostaddress.h
+ qhostaddress_p.h
+ qhostinfo.cpp
+ qhostinfo.h
+ qhostinfo_p.h
+ qhostinfo_unix.cpp
+ qhostinfo_win.cpp
+ qnetworkinterface.cpp
+ qnetworkinterface.h
+ qnetworkinterface_p.h
+ qnetworkinterface_symbian.cpp
+ qnetworkinterface_unix.cpp
+ qnetworkinterface_win.cpp
+ qnetworkinterface_win_p.h
+ qnetworkproxy.cpp
+ qnetworkproxy_generic.cpp
+ qnetworkproxy.h
+ qnetworkproxy_mac.cpp
+ qnetworkproxy_p.h
+ qnetworkproxy_win.cpp
+ qurlinfo.cpp
+ qurlinfo.h
+2 network.pro
+ network.qrc
+ socket/
+0 qabstractsocket.cpp
+ qabstractsocketengine.cpp
+ qabstractsocketengine_p.h
+ qabstractsocket.h
+ qabstractsocket_p.h
+ qhttpsocketengine.cpp
+ qhttpsocketengine_p.h
+ qlocalserver.cpp
+ qlocalserver.h
+ qlocalserver_p.h
+ qlocalserver_tcp.cpp
+ qlocalserver_unix.cpp
+ qlocalserver_win.cpp
+ qlocalsocket.cpp
+ qlocalsocket.h
+ qlocalsocket_p.h
+ qlocalsocket_tcp.cpp
+ qlocalsocket_unix.cpp
+ qlocalsocket_win.cpp
+ qnativesocketengine.cpp
+ qnativesocketengine_p.h
+ qnativesocketengine_unix.cpp
+ qnativesocketengine_win.cpp
+ qnet_unix_p.h
+ qsocks5socketengine.cpp
+ qsocks5socketengine_p.h
+ qtcpserver.cpp
+ qtcpserver.h
+ qtcpsocket.cpp
+ qtcpsocket.h
+ qtcpsocket_p.h
+ qudpsocket.cpp
+ qudpsocket.h
+ socket.pri
+2 ssl/
+0 qsslcertificate.cpp
+ qsslcertificate.h
+ qsslcertificate_p.h
+ qsslcipher.cpp
+ qsslcipher.h
+ qsslcipher_p.h
+ qsslconfiguration.cpp
+ qsslconfiguration.h
+ qsslconfiguration_p.h
+ qssl.cpp
+ qsslerror.cpp
+ qsslerror.h
+ qssl.h
+ qsslkey.cpp
+ qsslkey.h
+ qsslkey_p.h
+ qsslsocket.cpp
+ qsslsocket.h
+ qsslsocket_openssl.cpp
+ qsslsocket_openssl_p.h
+ qsslsocket_openssl_symbols.cpp
+ qsslsocket_openssl_symbols_p.h
+ qsslsocket_p.h
+ qt-ca-bundle.crt
+ ssl.pri
+3 opengl/
+0 gl2paintengineex/
+0 qgl2pexvertexarray.cpp
+ qgl2pexvertexarray_p.h
+ qglcustomshaderstage.cpp
+ qglcustomshaderstage_p.h
+ qglengineshadermanager.cpp
+ qglengineshadermanager_p.h
+ qglengineshadersource_p.h
+ qglgradientcache.cpp
+ qglgradientcache_p.h
+ qpaintengineex_opengl2.cpp
+ qpaintengineex_opengl2_p.h
+ qtriangulatingstroker.cpp
+ qtriangulatingstroker_p.h
+2 opengl.pro
+ qgl_cl_p.h
+ qglcolormap.cpp
+ qglcolormap.h
+ qgl.cpp
+ qgl_egl.cpp
+ qgl_egl_p.h
+ qglextensions.cpp
+ qglextensions_p.h
+ qglframebufferobject.cpp
+ qglframebufferobject.h
+ qglframebufferobject_p.h
+ qgl.h
+ qgl_mac.mm
+ qglpaintdevice.cpp
+ qglpaintdevice_p.h
+ qgl_p.h
+ qglpixelbuffer.cpp
+ qglpixelbuffer_egl.cpp
+ qglpixelbuffer.h
+ qglpixelbuffer_mac.mm
+ qglpixelbuffer_p.h
+ qglpixelbuffer_win.cpp
+ qglpixelbuffer_x11.cpp
+ qglpixmapfilter.cpp
+ qglpixmapfilter_p.h
+ qgl_qws.cpp
+ qglscreen_qws.cpp
+ qglscreen_qws.h
+ qglshaderprogram.cpp
+ qglshaderprogram.h
+ qgl_wince.cpp
+ qgl_win.cpp
+ qglwindowsurface_qws.cpp
+ qglwindowsurface_qws_p.h
+ qgl_x11.cpp
+ qgl_x11egl.cpp
+ qgraphicsshadereffect.cpp
+ qgraphicsshadereffect_p.h
+ qgraphicssystem_gl.cpp
+ qgraphicssystem_gl_p.h
+ qpaintengine_opengl.cpp
+ qpaintengine_opengl_p.h
+ qpixmapdata_gl.cpp
+ qpixmapdata_gl_p.h
+ qpixmapdata_x11gl_egl.cpp
+ qpixmapdata_x11gl_p.h
+ qwindowsurface_gl.cpp
+ qwindowsurface_gl_p.h
+ qwindowsurface_x11gl.cpp
+ qwindowsurface_x11gl_p.h
+ util/
+0 brushes.conf
+ brush_painter.glsl
+ composition_mode_colorburn.glsl
+ composition_mode_colordodge.glsl
+ composition_mode_darken.glsl
+ composition_mode_difference.glsl
+ composition_mode_exclusion.glsl
+ composition_mode_hardlight.glsl
+ composition_mode_lighten.glsl
+ composition_mode_multiply.glsl
+ composition_mode_overlay.glsl
+ composition_modes.conf
+ composition_mode_screen.glsl
+ composition_mode_softlight.glsl
+ conical_brush.glsl
+ ellipse_aa.glsl
+ fast_painter.glsl
+ fragmentprograms_p.h
+ generator.cpp
+ generator.pro
+ glsl_to_include.sh
+ linear_brush.glsl
+ masks.conf
+ painter.glsl
+ painter_nomask.glsl
+ pattern_brush.glsl
+ radial_brush.glsl
+ README-GLSL
+ simple_porter_duff.glsl
+ solid_brush.glsl
+ texture_brush.glsl
+ trap_exact_aa.glsl
+3 openvg/
+0 openvg.pro
+ qpaintengine_vg.cpp
+ qpaintengine_vg_p.h
+ qpixmapdata_vg.cpp
+ qpixmapdata_vg_p.h
+ qpixmapfilter_vg.cpp
+ qpixmapfilter_vg_p.h
+ qvgcompositionhelper_p.h
+ qvg.h
+ qvg_p.h
+ qwindowsurface_vg.cpp
+ qwindowsurface_vgegl.cpp
+ qwindowsurface_vgegl_p.h
+ qwindowsurface_vg_p.h
+2 phonon/
+0 phonon.pro
+2 plugins/
+0 accessible/
+0 accessible.pro
+ compat/
+0 compat.pro
+ main.cpp
+ q3complexwidgets.cpp
+ q3complexwidgets.h
+ q3simplewidgets.cpp
+ q3simplewidgets.h
+ qaccessiblecompat.cpp
+ qaccessiblecompat.h
+2 qaccessiblebase.pri
+ widgets/
+0 complexwidgets.cpp
+ complexwidgets.h
+ main.cpp
+ qaccessiblemenu.cpp
+ qaccessiblemenu.h
+ qaccessiblewidgets.cpp
+ qaccessiblewidgets.h
+ rangecontrols.cpp
+ rangecontrols.h
+ simplewidgets.cpp
+ simplewidgets.h
+ widgets.pro
+3 audio/
+0 audio.pro
+2 codecs/
+0 cn/
+0 cn.pro
+ main.cpp
+ qgb18030codec.cpp
+ qgb18030codec.h
+2 codecs.pro
+ jp/
+0 jp.pro
+ main.cpp
+ qeucjpcodec.cpp
+ qeucjpcodec.h
+ qfontjpcodec.cpp
+ qfontjpcodec.h
+ qjiscodec.cpp
+ qjiscodec.h
+ qjpunicode.cpp
+ qjpunicode.h
+ qsjiscodec.cpp
+ qsjiscodec.h
+2 kr/
+0 cp949codetbl.h
+ kr.pro
+ main.cpp
+ qeuckrcodec.cpp
+ qeuckrcodec.h
+2 tw/
+0 main.cpp
+ qbig5codec.cpp
+ qbig5codec.h
+ tw.pro
+3 decorations/
+0 decorations.pro
+ default/
+0 default.pro
+ main.cpp
+2 styled/
+0 main.cpp
+ styled.pro
+2 windows/
+0 main.cpp
+ windows.pro
+3 gfxdrivers/
+0 ahi/
+0 ahi.pro
+ qscreenahiplugin.cpp
+ qscreenahi_qws.cpp
+ qscreenahi_qws.h
+2 directfb/
+0 directfb.pro
+ qdirectfbkeyboard.cpp
+ qdirectfbkeyboard.h
+ qdirectfbmouse.cpp
+ qdirectfbmouse.h
+ qdirectfbpaintdevice.cpp
+ qdirectfbpaintdevice.h
+ qdirectfbpaintengine.cpp
+ qdirectfbpaintengine.h
+ qdirectfbpixmap.cpp
+ qdirectfbpixmap.h
+ qdirectfbscreen.cpp
+ qdirectfbscreen.h
+ qdirectfbscreenplugin.cpp
+ qdirectfbwindowsurface.cpp
+ qdirectfbwindowsurface.h
+2 gfxdrivers.pro
+ linuxfb/
+0 linuxfb.pro
+ main.cpp
+2 powervr/
+0 powervr.pri
+ powervr.pro
+ pvreglscreen/
+0 pvreglscreen.cpp
+ pvreglscreen.h
+ pvreglscreenplugin.cpp
+ pvreglscreen.pro
+ pvreglwindowsurface.cpp
+ pvreglwindowsurface.h
+2 QWSWSEGL/
+0 pvrqwsdrawable.c
+ pvrqwsdrawable.h
+ pvrqwsdrawable_p.h
+ pvrqwswsegl.c
+ QWSWSEGL.pro
+2 README
+2 qvfb/
+0 main.cpp
+ qvfb.pro
+2 transformed/
+0 main.cpp
+ transformed.pro
+2 vnc/
+0 main.cpp
+ qscreenvnc_p.h
+ qscreenvnc_qws.cpp
+ qscreenvnc_qws.h
+ vnc.pro
+3 graphicssystems/
+0 graphicssystems.pro
+ opengl/
+0 main.cpp
+ opengl.pro
+2 openvg/
+0 main.cpp
+ openvg.pro
+ qgraphicssystem_vg.cpp
+ qgraphicssystem_vg_p.h
+2 shivavg/
+0 main.cpp
+ README
+ shivavggraphicssystem.cpp
+ shivavggraphicssystem.h
+ shivavg.pro
+ shivavgwindowsurface.cpp
+ shivavgwindowsurface.h
+2 trace/
+0 main.cpp
+ qgraphicssystem_trace.cpp
+ qgraphicssystem_trace_p.h
+ trace.pro
+3 iconengines/
+0 iconengines.pro
+ svgiconengine/
+0 main.cpp
+ qsvgiconengine.cpp
+ qsvgiconengine.h
+ svgiconengine.pro
+3 imageformats/
+0 gif/
+0 gif.pro
+ main.cpp
+ qgifhandler.cpp
+ qgifhandler.h
+2 ico/
+0 ico.pro
+ main.cpp
+ qicohandler.cpp
+ qicohandler.h
+2 imageformats.pro
+ jpeg/
+0 jpeg.pro
+ main.cpp
+ qjpeghandler.cpp
+ qjpeghandler.h
+2 mng/
+0 main.cpp
+ mng.pro
+ qmnghandler.cpp
+ qmnghandler.h
+2 svg/
+0 main.cpp
+ qsvgiohandler.cpp
+ qsvgiohandler.h
+ svg.pro
+2 tiff/
+0 main.cpp
+ qtiffhandler.cpp
+ qtiffhandler.h
+ tiff.pro
+3 inputmethods/
+0 imsw-multi/
+0 imsw-multi.pro
+ qmultiinputcontext.cpp
+ qmultiinputcontext.h
+ qmultiinputcontextplugin.cpp
+ qmultiinputcontextplugin.h
+2 inputmethods.pro
+2 kbddrivers/
+0 kbddrivers.pro
+ linuxinput/
+0 linuxinput.pro
+ main.cpp
+3 mousedrivers/
+0 linuxtp/
+0 linuxtp.pro
+ main.cpp
+2 mousedrivers.pro
+ pc/
+0 main.cpp
+ pc.pro
+2 tslib/
+0 main.cpp
+ tslib.pro
+3 phonon/
+0 ds9/
+0 ds9.pro
+2 gstreamer/
+0 gstreamer.pro
+2 mmf/
+0 mmf.pro
+2 phonon.pro
+ qt7/
+0 qt7.pro
+2 waveout/
+0 waveout.pro
+3 plugins.pro
+ qpluginbase.pri
+ s60/
+0 3_1/
+0 3_1.pro
+2 3_2/
+0 3_2.pro
+2 5_0/
+0 5_0.pro
+2 bwins/
+0 qts60pluginu.def
+2 eabi/
+0 qts60pluginu.def
+2 s60pluginbase.pri
+ s60.pro
+ src/
+0 qcoreapplication_3_1.cpp
+ qcoreapplication_3_2.cpp
+ qdesktopservices_3_1.cpp
+ qdesktopservices_3_2.cpp
+ qlocale_3_1.cpp
+ qlocale_3_2.cpp
+3 script/
+0 qtdbus/
+0 main.cpp
+ main.h
+ qtdbus.pro
+2 script.pro
+2 sqldrivers/
+0 db2/
+0 db2.pro
+ main.cpp
+ README
+2 ibase/
+0 ibase.pro
+ main.cpp
+2 mysql/
+0 main.cpp
+ mysql.pro
+ README
+2 oci/
+0 main.cpp
+ oci.pro
+ README
+2 odbc/
+0 main.cpp
+ odbc.pro
+ README
+2 psql/
+0 main.cpp
+ psql.pro
+ README
+2 qsqldriverbase.pri
+ README
+ sqldrivers.pro
+ sqlite/
+ sqlite2/
+0 README
+ smain.cpp
+ sqlite2.pro
+2 sqlite/README
+ sqlite/smain.cpp
+ sqlite/sqlite.pro
+ sqlite_symbian/
+0 SQLite3_v9.2.zip
+ sqlite_symbian.pro
+2 tds/
+0 main.cpp
+ README
+ tds.pro
+4 qbase.pri
+ qt3support/
+0 canvas/
+0 canvas.pri
+ q3canvas.cpp
+ q3canvas.h
+2 dialogs/
+0 dialogs.pri
+ q3filedialog.cpp
+ q3filedialog.h
+ q3filedialog_mac.cpp
+ q3filedialog_win.cpp
+ q3progressdialog.cpp
+ q3progressdialog.h
+ q3tabdialog.cpp
+ q3tabdialog.h
+ q3wizard.cpp
+ q3wizard.h
+2 itemviews/
+0 itemviews.pri
+ q3iconview.cpp
+ q3iconview.h
+ q3listbox.cpp
+ q3listbox.h
+ q3listview.cpp
+ q3listview.h
+ q3table.cpp
+ q3table.h
+2 network/
+0 network.pri
+ q3dns.cpp
+ q3dns.h
+ q3ftp.cpp
+ q3ftp.h
+ q3http.cpp
+ q3http.h
+ q3localfs.cpp
+ q3localfs.h
+ q3network.cpp
+ q3network.h
+ q3networkprotocol.cpp
+ q3networkprotocol.h
+ q3serversocket.cpp
+ q3serversocket.h
+ q3socket.cpp
+ q3socketdevice.cpp
+ q3socketdevice.h
+ q3socketdevice_unix.cpp
+ q3socketdevice_win.cpp
+ q3socket.h
+ q3url.cpp
+ q3url.h
+ q3urloperator.cpp
+ q3urloperator.h
+2 other/
+0 other.pri
+ q3accel.cpp
+ q3accel.h
+ q3boxlayout.cpp
+ q3boxlayout.h
+ q3dragobject.cpp
+ q3dragobject.h
+ q3dropsite.cpp
+ q3dropsite.h
+ q3gridlayout.h
+ q3membuf.cpp
+ q3membuf_p.h
+ q3mimefactory.cpp
+ q3mimefactory.h
+ q3polygonscanner.cpp
+ q3polygonscanner.h
+ q3process.cpp
+ q3process.h
+ q3process_unix.cpp
+ q3process_win.cpp
+ qiconset.h
+ qt_compat_pch.h
+2 painting/
+0 painting.pri
+ q3paintdevicemetrics.cpp
+ q3paintdevicemetrics.h
+ q3paintengine_svg.cpp
+ q3paintengine_svg_p.h
+ q3painter.cpp
+ q3painter.h
+ q3picture.cpp
+ q3picture.h
+ q3pointarray.cpp
+ q3pointarray.h
+2 qt3support.pro
+ sql/
+0 q3databrowser.cpp
+ q3databrowser.h
+ q3datatable.cpp
+ q3datatable.h
+ q3dataview.cpp
+ q3dataview.h
+ q3editorfactory.cpp
+ q3editorfactory.h
+ q3sqlcursor.cpp
+ q3sqlcursor.h
+ q3sqleditorfactory.cpp
+ q3sqleditorfactory.h
+ q3sqlfieldinfo.h
+ q3sqlfieldinfo.qdoc
+ q3sqlform.cpp
+ q3sqlform.h
+ q3sqlmanager_p.cpp
+ q3sqlmanager_p.h
+ q3sqlpropertymap.cpp
+ q3sqlpropertymap.h
+ q3sqlrecordinfo.h
+ q3sqlrecordinfo.qdoc
+ q3sqlselectcursor.cpp
+ q3sqlselectcursor.h
+ sql.pri
+2 text/
+0 q3multilineedit.cpp
+ q3multilineedit.h
+ q3richtext.cpp
+ q3richtext_p.cpp
+ q3richtext_p.h
+ q3simplerichtext.cpp
+ q3simplerichtext.h
+ q3stylesheet.cpp
+ q3stylesheet.h
+ q3syntaxhighlighter.cpp
+ q3syntaxhighlighter.h
+ q3syntaxhighlighter_p.h
+ q3textbrowser.cpp
+ q3textbrowser.h
+ q3textedit.cpp
+ q3textedit.h
+ q3textstream.cpp
+ q3textstream.h
+ q3textview.cpp
+ q3textview.h
+ text.pri
+2 tools/
+0 q3asciicache.h
+ q3asciicache.qdoc
+ q3asciidict.h
+ q3asciidict.qdoc
+ q3cache.h
+ q3cache.qdoc
+ q3cleanuphandler.h
+ q3cstring.cpp
+ q3cstring.h
+ q3deepcopy.cpp
+ q3deepcopy.h
+ q3dict.h
+ q3dict.qdoc
+ q3garray.cpp
+ q3garray.h
+ q3gcache.cpp
+ q3gcache.h
+ q3gdict.cpp
+ q3gdict.h
+ q3glist.cpp
+ q3glist.h
+ q3gvector.cpp
+ q3gvector.h
+ q3intcache.h
+ q3intcache.qdoc
+ q3intdict.h
+ q3intdict.qdoc
+ q3memarray.h
+ q3memarray.qdoc
+ q3objectdict.h
+ q3ptrcollection.cpp
+ q3ptrcollection.h
+ q3ptrdict.h
+ q3ptrdict.qdoc
+ q3ptrlist.h
+ q3ptrlist.qdoc
+ q3ptrqueue.h
+ q3ptrqueue.qdoc
+ q3ptrstack.h
+ q3ptrstack.qdoc
+ q3ptrvector.h
+ q3ptrvector.qdoc
+ q3semaphore.cpp
+ q3semaphore.h
+ q3shared.cpp
+ q3shared.h
+ q3signal.cpp
+ q3signal.h
+ q3sortedlist.h
+ q3strlist.h
+ q3strvec.h
+ q3tl.h
+ q3valuelist.h
+ q3valuelist.qdoc
+ q3valuestack.h
+ q3valuestack.qdoc
+ q3valuevector.h
+ q3valuevector.qdoc
+ tools.pri
+2 widgets/
+0 q3action.cpp
+ q3action.h
+ q3button.cpp
+ q3buttongroup.cpp
+ q3buttongroup.h
+ q3button.h
+ q3combobox.cpp
+ q3combobox.h
+ q3datetimeedit.cpp
+ q3datetimeedit.h
+ q3dockarea.cpp
+ q3dockarea.h
+ q3dockwindow.cpp
+ q3dockwindow.h
+ q3frame.cpp
+ q3frame.h
+ q3grid.cpp
+ q3grid.h
+ q3gridview.cpp
+ q3gridview.h
+ q3groupbox.cpp
+ q3groupbox.h
+ q3hbox.cpp
+ q3hbox.h
+ q3header.cpp
+ q3header.h
+ q3hgroupbox.cpp
+ q3hgroupbox.h
+ q3mainwindow.cpp
+ q3mainwindow.h
+ q3mainwindow_p.h
+ q3popupmenu.cpp
+ q3popupmenu.h
+ q3progressbar.cpp
+ q3progressbar.h
+ q3rangecontrol.cpp
+ q3rangecontrol.h
+ q3scrollview.cpp
+ q3scrollview.h
+ q3spinwidget.cpp
+ q3titlebar.cpp
+ q3titlebar_p.h
+ q3toolbar.cpp
+ q3toolbar.h
+ q3vbox.cpp
+ q3vbox.h
+ q3vgroupbox.cpp
+ q3vgroupbox.h
+ q3whatsthis.cpp
+ q3whatsthis.h
+ q3widgetstack.cpp
+ q3widgetstack.h
+ widgets.pri
+3 qt_install.pri
+ qt_targets.pri
+ s60installs/
+0 bwins/
+0 phononu.def
+ QtCoreu.def
+ QtGuiu.def
+ QtMultimediau.def
+ QtNetworku.def
+ QtScriptu.def
+ QtSqlu.def
+ QtSvgu.def
+ QtTestu.def
+ QtWebKitu.def
+ QtXmlPatternsu.def
+ QtXmlu.def
+2 eabi/
+0 phononu.def
+ QtCoreu.def
+ QtGuiu.def
+ QtMultimediau.def
+ QtNetworku.def
+ QtOpenVGu.def
+ QtScriptu.def
+ QtSqlu.def
+ QtSvgu.def
+ QtTestu.def
+ QtWebKitu.def
+ QtXmlPatternsu.def
+ QtXmlu.def
+2 .gitignore
+ qtdemoapps.iby
+ qt.iby
+ qt.svg
+ s60installs.pro
+ selfsigned.cer
+ selfsigned.key
+2 s60main/
+0 qts60main.cpp
+ qts60main_mcrt0.cpp
+ s60main.pro
+2 script/
+0 api/
+0 api.pri
+ qscriptable.cpp
+ qscriptable.h
+ qscriptable_p.h
+ qscriptclass.cpp
+ qscriptclass.h
+ qscriptclasspropertyiterator.cpp
+ qscriptclasspropertyiterator.h
+ qscriptcontext.cpp
+ qscriptcontext.h
+ qscriptcontextinfo.cpp
+ qscriptcontextinfo.h
+ qscriptcontext_p.h
+ qscriptengineagent.cpp
+ qscriptengineagent.h
+ qscriptengineagent_p.h
+ qscriptengine.cpp
+ qscriptengine.h
+ qscriptengine_p.h
+ qscriptextensioninterface.h
+ qscriptextensionplugin.cpp
+ qscriptextensionplugin.h
+ qscriptprogram.cpp
+ qscriptprogram.h
+ qscriptprogram_p.h
+ qscriptstring.cpp
+ qscriptstring.h
+ qscriptstring_p.h
+ qscriptvalue.cpp
+ qscriptvalue.h
+ qscriptvalueiterator.cpp
+ qscriptvalueiterator.h
+ qscriptvalue_p.h
+2 bridge/
+0 bridge.pri
+ qscriptactivationobject.cpp
+ qscriptactivationobject_p.h
+ qscriptclassobject.cpp
+ qscriptclassobject_p.h
+ qscriptdeclarativeclass.cpp
+ qscriptdeclarativeclass_p.h
+ qscriptdeclarativeobject.cpp
+ qscriptdeclarativeobject_p.h
+ qscriptfunction.cpp
+ qscriptfunction_p.h
+ qscriptglobalobject.cpp
+ qscriptglobalobject_p.h
+ qscriptobject.cpp
+ qscriptobject_p.h
+ qscriptqobject.cpp
+ qscriptqobject_p.h
+ qscriptvariant.cpp
+ qscriptvariant_p.h
+2 parser/
+0 parser.pri
+ qscriptast.cpp
+ qscriptastfwd_p.h
+ qscriptast_p.h
+ qscriptastvisitor.cpp
+ qscriptastvisitor_p.h
+ qscript.g
+ qscriptgrammar.cpp
+ qscriptgrammar_p.h
+ qscriptlexer.cpp
+ qscriptlexer_p.h
+ qscriptparser.cpp
+ qscriptparser_p.h
+ qscriptsyntaxchecker.cpp
+ qscriptsyntaxchecker_p.h
+2 script.pri
+ script.pro
+2 scripttools/
+0 debugging/
+0 debugging.pri
+ images/
+0 breakpoint.png
+ breakpoint.svg
+ d_breakpoint.png
+ d_breakpoint.svg
+ delete.png
+ d_interrupt.png
+ d_play.png
+ find.png
+ interrupt.png
+ location.png
+ location.svg
+ mac/
+0 closetab.png
+ next.png
+ plus.png
+ previous.png
+2 new.png
+ play.png
+ reload.png
+ return.png
+ runtocursor.png
+ runtonewscript.png
+ stepinto.png
+ stepout.png
+ stepover.png
+ win/
+0 closetab.png
+ next.png
+ plus.png
+ previous.png
+2 wrap.png
+2 qscriptbreakpointdata.cpp
+ qscriptbreakpointdata_p.h
+ qscriptbreakpointsmodel.cpp
+ qscriptbreakpointsmodel_p.h
+ qscriptbreakpointswidget.cpp
+ qscriptbreakpointswidgetinterface.cpp
+ qscriptbreakpointswidgetinterface_p.h
+ qscriptbreakpointswidgetinterface_p_p.h
+ qscriptbreakpointswidget_p.h
+ qscriptcompletionproviderinterface_p.h
+ qscriptcompletiontask.cpp
+ qscriptcompletiontaskinterface.cpp
+ qscriptcompletiontaskinterface_p.h
+ qscriptcompletiontaskinterface_p_p.h
+ qscriptcompletiontask_p.h
+ qscriptdebuggeragent.cpp
+ qscriptdebuggeragent_p.h
+ qscriptdebuggeragent_p_p.h
+ qscriptdebuggerbackend.cpp
+ qscriptdebuggerbackend_p.h
+ qscriptdebuggerbackend_p_p.h
+ qscriptdebuggercodefinderwidget.cpp
+ qscriptdebuggercodefinderwidgetinterface.cpp
+ qscriptdebuggercodefinderwidgetinterface_p.h
+ qscriptdebuggercodefinderwidgetinterface_p_p.h
+ qscriptdebuggercodefinderwidget_p.h
+ qscriptdebuggercodeview.cpp
+ qscriptdebuggercodeviewinterface.cpp
+ qscriptdebuggercodeviewinterface_p.h
+ qscriptdebuggercodeviewinterface_p_p.h
+ qscriptdebuggercodeview_p.h
+ qscriptdebuggercodewidget.cpp
+ qscriptdebuggercodewidgetinterface.cpp
+ qscriptdebuggercodewidgetinterface_p.h
+ qscriptdebuggercodewidgetinterface_p_p.h
+ qscriptdebuggercodewidget_p.h
+ qscriptdebuggercommand.cpp
+ qscriptdebuggercommandexecutor.cpp
+ qscriptdebuggercommandexecutor_p.h
+ qscriptdebuggercommand_p.h
+ qscriptdebuggercommandschedulerfrontend.cpp
+ qscriptdebuggercommandschedulerfrontend_p.h
+ qscriptdebuggercommandschedulerinterface_p.h
+ qscriptdebuggercommandschedulerjob.cpp
+ qscriptdebuggercommandschedulerjob_p.h
+ qscriptdebuggercommandschedulerjob_p_p.h
+ qscriptdebuggerconsolecommand.cpp
+ qscriptdebuggerconsolecommandgroupdata.cpp
+ qscriptdebuggerconsolecommandgroupdata_p.h
+ qscriptdebuggerconsolecommandjob.cpp
+ qscriptdebuggerconsolecommandjob_p.h
+ qscriptdebuggerconsolecommandjob_p_p.h
+ qscriptdebuggerconsolecommandmanager.cpp
+ qscriptdebuggerconsolecommandmanager_p.h
+ qscriptdebuggerconsolecommand_p.h
+ qscriptdebuggerconsolecommand_p_p.h
+ qscriptdebuggerconsole.cpp
+ qscriptdebuggerconsoleglobalobject.cpp
+ qscriptdebuggerconsoleglobalobject_p.h
+ qscriptdebuggerconsolehistorianinterface_p.h
+ qscriptdebuggerconsole_p.h
+ qscriptdebuggerconsolewidget.cpp
+ qscriptdebuggerconsolewidgetinterface.cpp
+ qscriptdebuggerconsolewidgetinterface_p.h
+ qscriptdebuggerconsolewidgetinterface_p_p.h
+ qscriptdebuggerconsolewidget_p.h
+ qscriptdebugger.cpp
+ qscriptdebuggerevent.cpp
+ qscriptdebuggereventhandlerinterface_p.h
+ qscriptdebuggerevent_p.h
+ qscriptdebuggerfrontend.cpp
+ qscriptdebuggerfrontend_p.h
+ qscriptdebuggerfrontend_p_p.h
+ qscriptdebuggerjob.cpp
+ qscriptdebuggerjob_p.h
+ qscriptdebuggerjob_p_p.h
+ qscriptdebuggerjobschedulerinterface_p.h
+ qscriptdebuggerlocalsmodel.cpp
+ qscriptdebuggerlocalsmodel_p.h
+ qscriptdebuggerlocalswidget.cpp
+ qscriptdebuggerlocalswidgetinterface.cpp
+ qscriptdebuggerlocalswidgetinterface_p.h
+ qscriptdebuggerlocalswidgetinterface_p_p.h
+ qscriptdebuggerlocalswidget_p.h
+ qscriptdebuggerobjectsnapshotdelta_p.h
+ qscriptdebugger_p.h
+ qscriptdebuggerresponse.cpp
+ qscriptdebuggerresponsehandlerinterface_p.h
+ qscriptdebuggerresponse_p.h
+ qscriptdebuggerscriptedconsolecommand.cpp
+ qscriptdebuggerscriptedconsolecommand_p.h
+ qscriptdebuggerscriptsmodel.cpp
+ qscriptdebuggerscriptsmodel_p.h
+ qscriptdebuggerscriptswidget.cpp
+ qscriptdebuggerscriptswidgetinterface.cpp
+ qscriptdebuggerscriptswidgetinterface_p.h
+ qscriptdebuggerscriptswidgetinterface_p_p.h
+ qscriptdebuggerscriptswidget_p.h
+ qscriptdebuggerstackmodel.cpp
+ qscriptdebuggerstackmodel_p.h
+ qscriptdebuggerstackwidget.cpp
+ qscriptdebuggerstackwidgetinterface.cpp
+ qscriptdebuggerstackwidgetinterface_p.h
+ qscriptdebuggerstackwidgetinterface_p_p.h
+ qscriptdebuggerstackwidget_p.h
+ qscriptdebuggerstandardwidgetfactory.cpp
+ qscriptdebuggerstandardwidgetfactory_p.h
+ qscriptdebuggervalue.cpp
+ qscriptdebuggervalue_p.h
+ qscriptdebuggervalueproperty.cpp
+ qscriptdebuggervalueproperty_p.h
+ qscriptdebuggerwidgetfactoryinterface_p.h
+ qscriptdebugoutputwidget.cpp
+ qscriptdebugoutputwidgetinterface.cpp
+ qscriptdebugoutputwidgetinterface_p.h
+ qscriptdebugoutputwidgetinterface_p_p.h
+ qscriptdebugoutputwidget_p.h
+ qscriptedit.cpp
+ qscriptedit_p.h
+ qscriptenginedebugger.cpp
+ qscriptenginedebuggerfrontend.cpp
+ qscriptenginedebuggerfrontend_p.h
+ qscriptenginedebugger.h
+ qscripterrorlogwidget.cpp
+ qscripterrorlogwidgetinterface.cpp
+ qscripterrorlogwidgetinterface_p.h
+ qscripterrorlogwidgetinterface_p_p.h
+ qscripterrorlogwidget_p.h
+ qscriptmessagehandlerinterface_p.h
+ qscriptobjectsnapshot.cpp
+ qscriptobjectsnapshot_p.h
+ qscriptscriptdata.cpp
+ qscriptscriptdata_p.h
+ qscriptstdmessagehandler.cpp
+ qscriptstdmessagehandler_p.h
+ qscriptsyntaxhighlighter.cpp
+ qscriptsyntaxhighlighter_p.h
+ qscripttooltipproviderinterface_p.h
+ qscriptvalueproperty.cpp
+ qscriptvalueproperty_p.h
+ qscriptxmlparser.cpp
+ qscriptxmlparser_p.h
+ scripts/
+0 commands/
+0 advance.qs
+ backtrace.qs
+ break.qs
+ clear.qs
+ complete.qs
+ condition.qs
+ continue.qs
+ delete.qs
+ disable.qs
+ down.qs
+ enable.qs
+ eval.qs
+ finish.qs
+ frame.qs
+ help.qs
+ ignore.qs
+ info.qs
+ interrupt.qs
+ list.qs
+ next.qs
+ print.qs
+ return.qs
+ step.qs
+ tbreak.qs
+ up.qs
+3 scripttools_debugging.qrc
+2 scripttools.pro
+2 script/utils/
+0 qscriptdate.cpp
+ qscriptdate_p.h
+ utils.pri
+2 sql/
+0 drivers/
+0 db2/
+0 qsql_db2.cpp
+ qsql_db2.h
+2 drivers.pri
+ ibase/
+0 qsql_ibase.cpp
+ qsql_ibase.h
+2 mysql/
+0 qsql_mysql.cpp
+ qsql_mysql.h
+2 oci/
+0 qsql_oci.cpp
+ qsql_oci.h
+2 odbc/
+0 qsql_odbc.cpp
+ qsql_odbc.h
+2 psql/
+0 qsql_psql.cpp
+ qsql_psql.h
+2 sqlite/
+ sqlite2/
+0 qsql_sqlite2.cpp
+ qsql_sqlite2.h
+2 sqlite/qsql_sqlite.cpp
+ sqlite/qsql_sqlite.h
+ tds/
+0 qsql_tds.cpp
+ qsql_tds.h
+3 kernel/
+0 kernel.pri
+ qsqlcachedresult.cpp
+ qsqlcachedresult_p.h
+ qsqldatabase.cpp
+ qsqldatabase.h
+ qsqldriver.cpp
+ qsqldriver.h
+ qsqldriverplugin.cpp
+ qsqldriverplugin.h
+ qsqlerror.cpp
+ qsqlerror.h
+ qsqlfield.cpp
+ qsqlfield.h
+ qsql.h
+ qsqlindex.cpp
+ qsqlindex.h
+ qsqlnulldriver_p.h
+ qsql.qdoc
+ qsqlquery.cpp
+ qsqlquery.h
+ qsqlrecord.cpp
+ qsqlrecord.h
+ qsqlresult.cpp
+ qsqlresult.h
+2 models/
+0 models.pri
+ qsqlquerymodel.cpp
+ qsqlquerymodel.h
+ qsqlquerymodel_p.h
+ qsqlrelationaldelegate.cpp
+ qsqlrelationaldelegate.h
+ qsqlrelationaltablemodel.cpp
+ qsqlrelationaltablemodel.h
+ qsqltablemodel.cpp
+ qsqltablemodel.h
+ qsqltablemodel_p.h
+2 README.module
+ sql.pro
+2 src.pro
+ svg/
+0 qgraphicssvgitem.cpp
+ qgraphicssvgitem.h
+ qsvgfont.cpp
+ qsvgfont_p.h
+ qsvggenerator.cpp
+ qsvggenerator.h
+ qsvggraphics.cpp
+ qsvggraphics_p.h
+ qsvghandler.cpp
+ qsvghandler_p.h
+ qsvgnode.cpp
+ qsvgnode_p.h
+ qsvgrenderer.cpp
+ qsvgrenderer.h
+ qsvgstructure.cpp
+ qsvgstructure_p.h
+ qsvgstyle.cpp
+ qsvgstyle_p.h
+ qsvgtinydocument.cpp
+ qsvgtinydocument_p.h
+ qsvgwidget.cpp
+ qsvgwidget.h
+ svg.pro
+2 testlib/
+0 3rdparty/
+0 callgrind_p.h
+ cycle_p.h
+ valgrind_p.h
+2 qabstracttestlogger.cpp
+ qabstracttestlogger_p.h
+ qasciikey.cpp
+ qbenchmark.cpp
+ qbenchmarkevent.cpp
+ qbenchmarkevent_p.h
+ qbenchmark.h
+ qbenchmarkmeasurement.cpp
+ qbenchmarkmeasurement_p.h
+ qbenchmark_p.h
+ qbenchmarkvalgrind.cpp
+ qbenchmarkvalgrind_p.h
+ qplaintestlogger.cpp
+ qplaintestlogger_p.h
+ qsignaldumper.cpp
+ qsignaldumper_p.h
+ qsignalspy.h
+ qsignalspy.qdoc
+ qtestaccessible.h
+ qtestassert.h
+ qtestbasicstreamer.cpp
+ qtestbasicstreamer.h
+ qtestcase.cpp
+ qtestcase.h
+ qtestcoreelement.h
+ qtestcorelist.h
+ qtestdata.cpp
+ qtestdata.h
+ qtestelementattribute.cpp
+ qtestelementattribute.h
+ qtestelement.cpp
+ qtestelement.h
+ qtestevent.h
+ qtesteventloop.h
+ qtestevent.qdoc
+ qtestfilelogger.cpp
+ qtestfilelogger.h
+ qtest_global.h
+ qtest_gui.h
+ qtest.h
+ qtestkeyboard.h
+ qtestlightxmlstreamer.cpp
+ qtestlightxmlstreamer.h
+ qtestlog.cpp
+ qtestlogger.cpp
+ qtestlogger_p.h
+ qtestlog_p.h
+ qtestmouse.h
+ qtestresult.cpp
+ qtestresult_p.h
+ qtestspontaneevent.h
+ qtestsystem.h
+ qtesttable.cpp
+ qtesttable_p.h
+ qtesttouch.h
+ qtestxmlstreamer.cpp
+ qtestxmlstreamer.h
+ qtestxunitstreamer.cpp
+ qtestxunitstreamer.h
+ qxmltestlogger.cpp
+ qxmltestlogger_p.h
+ testlib.pro
+2 tools/
+0 bootstrap/
+0 bootstrap.pri
+ bootstrap.pro
+2 idc/
+0 idc.pro
+ main.cpp
+2 moc/
+0 generator.cpp
+ generator.h
+ keywords.cpp
+ main.cpp
+ moc.cpp
+ moc.h
+ moc.pri
+ moc.pro
+ mwerks_mac.cpp
+ mwerks_mac.h
+ outputrevision.h
+ parser.cpp
+ parser.h
+ ppkeywords.cpp
+ preprocessor.cpp
+ preprocessor.h
+ symbols.h
+ token.cpp
+ token.h
+ util/
+0 generate_keywords.cpp
+ generate_keywords.pro
+ generate.sh
+ licenseheader.txt
+2 utils.h
+2 rcc/
+0 main.cpp
+ rcc.cpp
+ rcc.h
+ rcc.pri
+ rcc.pro
+2 tools.pro
+ uic/
+ uic3/
+0 converter.cpp
+ deps.cpp
+ domtool.cpp
+ domtool.h
+ embed.cpp
+ form.cpp
+ main.cpp
+ object.cpp
+ parser.cpp
+ parser.h
+ qt3to4.cpp
+ qt3to4.h
+ subclassing.cpp
+ ui3reader.cpp
+ ui3reader.h
+ uic3.pro
+ uic.cpp
+ uic.h
+ widgetinfo.cpp
+ widgetinfo.h
+2 uic/cpp/
+0 cppextractimages.cpp
+ cppextractimages.h
+ cpp.pri
+ cppwritedeclaration.cpp
+ cppwritedeclaration.h
+ cppwriteicondata.cpp
+ cppwriteicondata.h
+ cppwriteicondeclaration.cpp
+ cppwriteicondeclaration.h
+ cppwriteiconinitialization.cpp
+ cppwriteiconinitialization.h
+ cppwriteincludes.cpp
+ cppwriteincludes.h
+ cppwriteinitialization.cpp
+ cppwriteinitialization.h
+2 uic/customwidgetsinfo.cpp
+ uic/customwidgetsinfo.h
+ uic/databaseinfo.cpp
+ uic/databaseinfo.h
+ uic/driver.cpp
+ uic/driver.h
+ uic/globaldefs.h
+ uic/main.cpp
+ uic/option.h
+ uic/treewalker.cpp
+ uic/treewalker.h
+ uic/ui4.cpp
+ uic/ui4.h
+ uic/uic.cpp
+ uic/uic.h
+ uic/uic.pri
+ uic/uic.pro
+ uic/utils.h
+ uic/validator.cpp
+ uic/validator.h
+2 winmain/
+0 qtmain_win.cpp
+ winmain.pro
+2 xml/
+0 dom/
+0 dom.pri
+ qdom.cpp
+ qdom.h
+3 xmlpatterns/
+0 acceltree/
+0 acceltree.pri
+ qacceliterators.cpp
+ qacceliterators_p.h
+ qacceltreebuilder.cpp
+ qacceltreebuilder_p.h
+ qacceltree.cpp
+ qacceltree_p.h
+ qacceltreeresourceloader.cpp
+ qacceltreeresourceloader_p.h
+ qcompressedwhitespace.cpp
+ qcompressedwhitespace_p.h
+2 api/
+0 api.pri
+ qabstractmessagehandler.cpp
+ qabstractmessagehandler.h
+ qabstracturiresolver.cpp
+ qabstracturiresolver.h
+ qabstractxmlforwarditerator.cpp
+ qabstractxmlforwarditerator_p.h
+ qabstractxmlnodemodel.cpp
+ qabstractxmlnodemodel.h
+ qabstractxmlnodemodel_p.h
+ qabstractxmlpullprovider.cpp
+ qabstractxmlpullprovider_p.h
+ qabstractxmlreceiver.cpp
+ qabstractxmlreceiver.h
+ qabstractxmlreceiver_p.h
+ qdeviceresourceloader_p.h
+ qiodevicedelegate.cpp
+ qiodevicedelegate_p.h
+ qnetworkaccessdelegator.cpp
+ qnetworkaccessdelegator_p.h
+ qpullbridge.cpp
+ qpullbridge_p.h
+ qreferencecountedvalue_p.h
+ qresourcedelegator.cpp
+ qresourcedelegator_p.h
+ qsimplexmlnodemodel.cpp
+ qsimplexmlnodemodel.h
+ qsourcelocation.cpp
+ qsourcelocation.h
+ quriloader.cpp
+ quriloader_p.h
+ qvariableloader.cpp
+ qvariableloader_p.h
+ qxmlformatter.cpp
+ qxmlformatter.h
+ qxmlname.cpp
+ qxmlname.h
+ qxmlnamepool.cpp
+ qxmlnamepool.h
+ qxmlquery.cpp
+ qxmlquery.h
+ qxmlquery_p.h
+ qxmlresultitems.cpp
+ qxmlresultitems.h
+ qxmlresultitems_p.h
+ qxmlschema.cpp
+ qxmlschema.h
+ qxmlschema_p.cpp
+ qxmlschema_p.h
+ qxmlschemavalidator.cpp
+ qxmlschemavalidator.h
+ qxmlschemavalidator_p.h
+ qxmlserializer.cpp
+ qxmlserializer.h
+ qxmlserializer_p.h
+2 common.pri
+ data/
+0 data.pri
+ qabstractdatetime.cpp
+ qabstractdatetime_p.h
+ qabstractduration.cpp
+ qabstractduration_p.h
+ qabstractfloatcasters.cpp
+ qabstractfloatcasters_p.h
+ qabstractfloat.cpp
+ qabstractfloatmathematician.cpp
+ qabstractfloatmathematician_p.h
+ qabstractfloat_p.h
+ qanyuri.cpp
+ qanyuri_p.h
+ qatomiccaster.cpp
+ qatomiccaster_p.h
+ qatomiccasters.cpp
+ qatomiccasters_p.h
+ qatomiccomparator.cpp
+ qatomiccomparator_p.h
+ qatomiccomparators.cpp
+ qatomiccomparators_p.h
+ qatomicmathematician.cpp
+ qatomicmathematician_p.h
+ qatomicmathematicians.cpp
+ qatomicmathematicians_p.h
+ qatomicstring.cpp
+ qatomicstring_p.h
+ qatomicvalue.cpp
+ qbase64binary.cpp
+ qbase64binary_p.h
+ qboolean.cpp
+ qboolean_p.h
+ qcommonvalues.cpp
+ qcommonvalues_p.h
+ qcomparisonfactory.cpp
+ qcomparisonfactory_p.h
+ qdate.cpp
+ qdate_p.h
+ qdaytimeduration.cpp
+ qdaytimeduration_p.h
+ qdecimal.cpp
+ qdecimal_p.h
+ qderivedinteger_p.h
+ qderivedstring_p.h
+ qduration.cpp
+ qduration_p.h
+ qgday.cpp
+ qgday_p.h
+ qgmonth.cpp
+ qgmonthday.cpp
+ qgmonthday_p.h
+ qgmonth_p.h
+ qgyear.cpp
+ qgyearmonth.cpp
+ qgyearmonth_p.h
+ qgyear_p.h
+ qhexbinary.cpp
+ qhexbinary_p.h
+ qinteger.cpp
+ qinteger_p.h
+ qitem.cpp
+ qitem_p.h
+ qnodebuilder.cpp
+ qnodebuilder_p.h
+ qnodemodel.cpp
+ qqnamevalue.cpp
+ qqnamevalue_p.h
+ qresourceloader.cpp
+ qresourceloader_p.h
+ qschemadatetime.cpp
+ qschemadatetime_p.h
+ qschemanumeric.cpp
+ qschemanumeric_p.h
+ qschematime.cpp
+ qschematime_p.h
+ qsequencereceiver.cpp
+ qsequencereceiver_p.h
+ qsorttuple.cpp
+ qsorttuple_p.h
+ quntypedatomic.cpp
+ quntypedatomic_p.h
+ qvalidationerror.cpp
+ qvalidationerror_p.h
+ qvaluefactory.cpp
+ qvaluefactory_p.h
+ qyearmonthduration.cpp
+ qyearmonthduration_p.h
+2 documentationGroups.dox
+ Doxyfile
+ environment/
+0 createReportContext.sh
+ createReportContext.xsl
+ environment.pri
+ qcurrentitemcontext.cpp
+ qcurrentitemcontext_p.h
+ qdelegatingdynamiccontext.cpp
+ qdelegatingdynamiccontext_p.h
+ qdelegatingstaticcontext.cpp
+ qdelegatingstaticcontext_p.h
+ qdynamiccontext.cpp
+ qdynamiccontext_p.h
+ qfocus.cpp
+ qfocus_p.h
+ qgenericdynamiccontext.cpp
+ qgenericdynamiccontext_p.h
+ qgenericstaticcontext.cpp
+ qgenericstaticcontext_p.h
+ qreceiverdynamiccontext.cpp
+ qreceiverdynamiccontext_p.h
+ qreportcontext.cpp
+ qreportcontext_p.h
+ qstackcontextbase.cpp
+ qstackcontextbase_p.h
+ qstaticbaseuricontext.cpp
+ qstaticbaseuricontext_p.h
+ qstaticcompatibilitycontext.cpp
+ qstaticcompatibilitycontext_p.h
+ qstaticcontext.cpp
+ qstaticcontext_p.h
+ qstaticcurrentcontext.cpp
+ qstaticcurrentcontext_p.h
+ qstaticfocuscontext.cpp
+ qstaticfocuscontext_p.h
+ qstaticnamespacecontext.cpp
+ qstaticnamespacecontext_p.h
+2 expr/
+0 expr.pri
+ qandexpression.cpp
+ qandexpression_p.h
+ qapplytemplate.cpp
+ qapplytemplate_p.h
+ qargumentreference.cpp
+ qargumentreference_p.h
+ qarithmeticexpression.cpp
+ qarithmeticexpression_p.h
+ qattributeconstructor.cpp
+ qattributeconstructor_p.h
+ qattributenamevalidator.cpp
+ qattributenamevalidator_p.h
+ qaxisstep.cpp
+ qaxisstep_p.h
+ qcachecells_p.h
+ qcallsite.cpp
+ qcallsite_p.h
+ qcalltargetdescription.cpp
+ qcalltargetdescription_p.h
+ qcalltemplate.cpp
+ qcalltemplate_p.h
+ qcastableas.cpp
+ qcastableas_p.h
+ qcastas.cpp
+ qcastas_p.h
+ qcastingplatform.cpp
+ qcastingplatform_p.h
+ qcollationchecker.cpp
+ qcollationchecker_p.h
+ qcombinenodes.cpp
+ qcombinenodes_p.h
+ qcommentconstructor.cpp
+ qcommentconstructor_p.h
+ qcomparisonplatform.cpp
+ qcomparisonplatform_p.h
+ qcomputednamespaceconstructor.cpp
+ qcomputednamespaceconstructor_p.h
+ qcontextitem.cpp
+ qcontextitem_p.h
+ qcopyof.cpp
+ qcopyof_p.h
+ qcurrentitemstore.cpp
+ qcurrentitemstore_p.h
+ qdocumentconstructor.cpp
+ qdocumentconstructor_p.h
+ qdocumentcontentvalidator.cpp
+ qdocumentcontentvalidator_p.h
+ qdynamiccontextstore.cpp
+ qdynamiccontextstore_p.h
+ qelementconstructor.cpp
+ qelementconstructor_p.h
+ qemptycontainer.cpp
+ qemptycontainer_p.h
+ qemptysequence.cpp
+ qemptysequence_p.h
+ qevaluationcache.cpp
+ qevaluationcache_p.h
+ qexpression.cpp
+ qexpressiondispatch_p.h
+ qexpressionfactory.cpp
+ qexpressionfactory_p.h
+ qexpression_p.h
+ qexpressionsequence.cpp
+ qexpressionsequence_p.h
+ qexpressionvariablereference.cpp
+ qexpressionvariablereference_p.h
+ qexternalvariableloader.cpp
+ qexternalvariableloader_p.h
+ qexternalvariablereference.cpp
+ qexternalvariablereference_p.h
+ qfirstitempredicate.cpp
+ qfirstitempredicate_p.h
+ qforclause.cpp
+ qforclause_p.h
+ qgeneralcomparison.cpp
+ qgeneralcomparison_p.h
+ qgenericpredicate.cpp
+ qgenericpredicate_p.h
+ qifthenclause.cpp
+ qifthenclause_p.h
+ qinstanceof.cpp
+ qinstanceof_p.h
+ qletclause.cpp
+ qletclause_p.h
+ qliteral.cpp
+ qliteral_p.h
+ qliteralsequence.cpp
+ qliteralsequence_p.h
+ qnamespaceconstructor.cpp
+ qnamespaceconstructor_p.h
+ qncnameconstructor.cpp
+ qncnameconstructor_p.h
+ qnodecomparison.cpp
+ qnodecomparison_p.h
+ qnodesort.cpp
+ qnodesort_p.h
+ qoperandsiterator_p.h
+ qoptimizationpasses.cpp
+ qoptimizationpasses_p.h
+ qoptimizerblocks.cpp
+ qoptimizerblocks_p.h
+ qoptimizerframework.cpp
+ qoptimizerframework_p.h
+ qorderby.cpp
+ qorderby_p.h
+ qorexpression.cpp
+ qorexpression_p.h
+ qpaircontainer.cpp
+ qpaircontainer_p.h
+ qparentnodeaxis.cpp
+ qparentnodeaxis_p.h
+ qpath.cpp
+ qpath_p.h
+ qpositionalvariablereference.cpp
+ qpositionalvariablereference_p.h
+ qprocessinginstructionconstructor.cpp
+ qprocessinginstructionconstructor_p.h
+ qqnameconstructor.cpp
+ qqnameconstructor_p.h
+ qquantifiedexpression.cpp
+ qquantifiedexpression_p.h
+ qrangeexpression.cpp
+ qrangeexpression_p.h
+ qrangevariablereference.cpp
+ qrangevariablereference_p.h
+ qreturnorderby.cpp
+ qreturnorderby_p.h
+ qsimplecontentconstructor.cpp
+ qsimplecontentconstructor_p.h
+ qsinglecontainer.cpp
+ qsinglecontainer_p.h
+ qsourcelocationreflection.cpp
+ qsourcelocationreflection_p.h
+ qstaticbaseuristore.cpp
+ qstaticbaseuristore_p.h
+ qstaticcompatibilitystore.cpp
+ qstaticcompatibilitystore_p.h
+ qtemplate.cpp
+ qtemplateinvoker.cpp
+ qtemplateinvoker_p.h
+ qtemplatemode.cpp
+ qtemplatemode_p.h
+ qtemplateparameterreference.cpp
+ qtemplateparameterreference_p.h
+ qtemplatepattern_p.h
+ qtemplate_p.h
+ qtextnodeconstructor.cpp
+ qtextnodeconstructor_p.h
+ qtreatas.cpp
+ qtreatas_p.h
+ qtriplecontainer.cpp
+ qtriplecontainer_p.h
+ qtruthpredicate.cpp
+ qtruthpredicate_p.h
+ qunaryexpression.cpp
+ qunaryexpression_p.h
+ qunlimitedcontainer.cpp
+ qunlimitedcontainer_p.h
+ qunresolvedvariablereference.cpp
+ qunresolvedvariablereference_p.h
+ quserfunctioncallsite.cpp
+ quserfunctioncallsite_p.h
+ quserfunction.cpp
+ quserfunction_p.h
+ qvalidate.cpp
+ qvalidate_p.h
+ qvaluecomparison.cpp
+ qvaluecomparison_p.h
+ qvariabledeclaration.cpp
+ qvariabledeclaration_p.h
+ qvariablereference.cpp
+ qvariablereference_p.h
+ qwithparam_p.h
+ qxsltsimplecontentconstructor.cpp
+ qxsltsimplecontentconstructor_p.h
+2 functions/
+0 functions.pri
+ qabstractfunctionfactory.cpp
+ qabstractfunctionfactory_p.h
+ qaccessorfns.cpp
+ qaccessorfns_p.h
+ qaggregatefns.cpp
+ qaggregatefns_p.h
+ qaggregator.cpp
+ qaggregator_p.h
+ qassemblestringfns.cpp
+ qassemblestringfns_p.h
+ qbooleanfns.cpp
+ qbooleanfns_p.h
+ qcomparescaseaware.cpp
+ qcomparescaseaware_p.h
+ qcomparestringfns.cpp
+ qcomparestringfns_p.h
+ qcomparingaggregator.cpp
+ qcomparingaggregator_p.h
+ qconstructorfunctionsfactory.cpp
+ qconstructorfunctionsfactory_p.h
+ qcontextfns.cpp
+ qcontextfns_p.h
+ qcontextnodechecker.cpp
+ qcontextnodechecker_p.h
+ qcurrentfn.cpp
+ qcurrentfn_p.h
+ qdatetimefn.cpp
+ qdatetimefn_p.h
+ qdatetimefns.cpp
+ qdatetimefns_p.h
+ qdeepequalfn.cpp
+ qdeepequalfn_p.h
+ qdocumentfn.cpp
+ qdocumentfn_p.h
+ qelementavailablefn.cpp
+ qelementavailablefn_p.h
+ qerrorfn.cpp
+ qerrorfn_p.h
+ qfunctionargument.cpp
+ qfunctionargument_p.h
+ qfunctionavailablefn.cpp
+ qfunctionavailablefn_p.h
+ qfunctioncall.cpp
+ qfunctioncall_p.h
+ qfunctionfactorycollection.cpp
+ qfunctionfactorycollection_p.h
+ qfunctionfactory.cpp
+ qfunctionfactory_p.h
+ qfunctionsignature.cpp
+ qfunctionsignature_p.h
+ qgenerateidfn.cpp
+ qgenerateidfn_p.h
+ qnodefns.cpp
+ qnodefns_p.h
+ qnumericfns.cpp
+ qnumericfns_p.h
+ qpatternmatchingfns.cpp
+ qpatternmatchingfns_p.h
+ qpatternplatform.cpp
+ qpatternplatform_p.h
+ qqnamefns.cpp
+ qqnamefns_p.h
+ qresolveurifn.cpp
+ qresolveurifn_p.h
+ qsequencefns.cpp
+ qsequencefns_p.h
+ qsequencegeneratingfns.cpp
+ qsequencegeneratingfns_p.h
+ qstaticbaseuricontainer_p.h
+ qstaticnamespacescontainer.cpp
+ qstaticnamespacescontainer_p.h
+ qstringvaluefns.cpp
+ qstringvaluefns_p.h
+ qsubstringfns.cpp
+ qsubstringfns_p.h
+ qsystempropertyfn.cpp
+ qsystempropertyfn_p.h
+ qtimezonefns.cpp
+ qtimezonefns_p.h
+ qtracefn.cpp
+ qtracefn_p.h
+ qtypeavailablefn.cpp
+ qtypeavailablefn_p.h
+ qunparsedentitypublicidfn.cpp
+ qunparsedentitypublicidfn_p.h
+ qunparsedentityurifn.cpp
+ qunparsedentityurifn_p.h
+ qunparsedtextavailablefn.cpp
+ qunparsedtextavailablefn_p.h
+ qunparsedtextfn.cpp
+ qunparsedtextfn_p.h
+ qxpath10corefunctions.cpp
+ qxpath10corefunctions_p.h
+ qxpath20corefunctions.cpp
+ qxpath20corefunctions_p.h
+ qxslt20corefunctions.cpp
+ qxslt20corefunctions_p.h
+2 .gitignore
+ iterators/
+0 iterators.pri
+ qcachingiterator.cpp
+ qcachingiterator_p.h
+ qdeduplicateiterator.cpp
+ qdeduplicateiterator_p.h
+ qdistinctiterator.cpp
+ qdistinctiterator_p.h
+ qemptyiterator_p.h
+ qexceptiterator.cpp
+ qexceptiterator_p.h
+ qindexofiterator.cpp
+ qindexofiterator_p.h
+ qinsertioniterator.cpp
+ qinsertioniterator_p.h
+ qintersectiterator.cpp
+ qintersectiterator_p.h
+ qitemmappingiterator_p.h
+ qrangeiterator.cpp
+ qrangeiterator_p.h
+ qremovaliterator.cpp
+ qremovaliterator_p.h
+ qsequencemappingiterator_p.h
+ qsingletoniterator_p.h
+ qsubsequenceiterator.cpp
+ qsubsequenceiterator_p.h
+ qtocodepointsiterator.cpp
+ qtocodepointsiterator_p.h
+ qunioniterator.cpp
+ qunioniterator_p.h
+2 janitors/
+0 janitors.pri
+ qargumentconverter.cpp
+ qargumentconverter_p.h
+ qatomizer.cpp
+ qatomizer_p.h
+ qcardinalityverifier.cpp
+ qcardinalityverifier_p.h
+ qebvextractor.cpp
+ qebvextractor_p.h
+ qitemverifier.cpp
+ qitemverifier_p.h
+ quntypedatomicconverter.cpp
+ quntypedatomicconverter_p.h
+2 Mainpage.dox
+ parser/
+0 createParser.sh
+ createTokenLookup.sh
+ createXSLTTokenLookup.sh
+ .gitattributes
+ .gitignore
+ parser.pri
+ qmaintainingreader.cpp
+ qmaintainingreader_p.h
+ qparsercontext.cpp
+ qparsercontext_p.h
+ qquerytransformparser.cpp
+ qquerytransformparser_p.h
+ qtokenizer_p.h
+ qtokenlookup.cpp
+ qtokenrevealer.cpp
+ qtokenrevealer_p.h
+ qtokensource.cpp
+ qtokensource_p.h
+ querytransformparser.ypp
+ qxquerytokenizer.cpp
+ qxquerytokenizer_p.h
+ qxslttokenizer.cpp
+ qxslttokenizer_p.h
+ qxslttokenlookup.cpp
+ qxslttokenlookup_p.h
+ qxslttokenlookup.xml
+ TokenLookup.gperf
+ trolltechHeader.txt
+ winCEWorkaround.sed
+2 projection/
+0 projection.pri
+ qdocumentprojector.cpp
+ qdocumentprojector_p.h
+ qprojectedexpression_p.h
+2 qtokenautomaton/
+0 exampleFile.xml
+ qautomaton2cpp.xsl
+ qtokenautomaton.xsd
+ README
+2 query.pri
+ schema/
+0 builtinschemas.qrc
+ doc/
+0 All_diagram.dot
+ Alternative_diagram.dot
+ Annotation_diagram.dot
+ AnyAttribute_diagram.dot
+ Any_diagram.dot
+ Assert_diagram.dot
+ Choice_diagram.dot
+ ComplexContent_diagram.dot
+ ComplexContentExtension_diagram.dot
+ ComplexContentRestriction_diagram.dot
+ DefaultOpenContent_diagram.dot
+ EnumerationFacet_diagram.dot
+ Field_diagram.dot
+ FractionDigitsFacet_diagram.dot
+ GlobalAttribute_diagram.dot
+ GlobalComplexType_diagram.dot
+ GlobalElement_diagram.dot
+ GlobalSimpleType_diagram.dot
+ Import_diagram.dot
+ Include_diagram.dot
+ Key_diagram.dot
+ KeyRef_diagram.dot
+ legend.dot
+ LengthFacet_diagram.dot
+ List_diagram.dot
+ LocalAll_diagram.dot
+ LocalAttribute_diagram.dot
+ LocalChoice_diagram.dot
+ LocalComplexType_diagram.dot
+ LocalElement_diagram.dot
+ LocalSequence_diagram.dot
+ LocalSimpleType_diagram.dot
+ MaxExclusiveFacet_diagram.dot
+ MaxInclusiveFacet_diagram.dot
+ MaxLengthFacet_diagram.dot
+ MinExclusiveFacet_diagram.dot
+ MinInclusiveFacet_diagram.dot
+ MinLengthFacet_diagram.dot
+ NamedAttributeGroup_diagram.dot
+ NamedGroup_diagram.dot
+ Notation_diagram.dot
+ Override_diagram.dot
+ PatternFacet_diagram.dot
+ Redefine_diagram.dot
+ ReferredAttributeGroup_diagram.dot
+ ReferredGroup_diagram.dot
+ Schema_diagram.dot
+ Selector_diagram.dot
+ Sequence_diagram.dot
+ SimpleContent_diagram.dot
+ SimpleContentExtension_diagram.dot
+ SimpleContentRestriction_diagram.dot
+ SimpleRestriction_diagram.dot
+ TotalDigitsFacet_diagram.dot
+ Union_diagram.dot
+ Unique_diagram.dot
+ WhiteSpaceFacet_diagram.dot
+2 .gitignore
+ qnamespacesupport.cpp
+ qnamespacesupport_p.h
+ qxsdalternative.cpp
+ qxsdalternative_p.h
+ qxsdannotated.cpp
+ qxsdannotated_p.h
+ qxsdannotation.cpp
+ qxsdannotation_p.h
+ qxsdapplicationinformation.cpp
+ qxsdapplicationinformation_p.h
+ qxsdassertion.cpp
+ qxsdassertion_p.h
+ qxsdattribute.cpp
+ qxsdattributegroup.cpp
+ qxsdattributegroup_p.h
+ qxsdattribute_p.h
+ qxsdattributereference.cpp
+ qxsdattributereference_p.h
+ qxsdattributeterm.cpp
+ qxsdattributeterm_p.h
+ qxsdattributeuse.cpp
+ qxsdattributeuse_p.h
+ qxsdcomplextype.cpp
+ qxsdcomplextype_p.h
+ qxsddocumentation.cpp
+ qxsddocumentation_p.h
+ qxsdelement.cpp
+ qxsdelement_p.h
+ qxsdfacet.cpp
+ qxsdfacet_p.h
+ qxsdidcache.cpp
+ qxsdidcache_p.h
+ qxsdidchelper.cpp
+ qxsdidchelper_p.h
+ qxsdidentityconstraint.cpp
+ qxsdidentityconstraint_p.h
+ qxsdinstancereader.cpp
+ qxsdinstancereader_p.h
+ qxsdmodelgroup.cpp
+ qxsdmodelgroup_p.h
+ qxsdnotation.cpp
+ qxsdnotation_p.h
+ qxsdparticlechecker.cpp
+ qxsdparticlechecker_p.h
+ qxsdparticle.cpp
+ qxsdparticle_p.h
+ qxsdreference.cpp
+ qxsdreference_p.h
+ qxsdschemachecker.cpp
+ qxsdschemachecker_helper.cpp
+ qxsdschemachecker_p.h
+ qxsdschemachecker_setup.cpp
+ qxsdschemacontext.cpp
+ qxsdschemacontext_p.h
+ qxsdschema.cpp
+ qxsdschemadebugger.cpp
+ qxsdschemadebugger_p.h
+ qxsdschemahelper.cpp
+ qxsdschemahelper_p.h
+ qxsdschemamerger.cpp
+ qxsdschemamerger_p.h
+ qxsdschemaparsercontext.cpp
+ qxsdschemaparsercontext_p.h
+ qxsdschemaparser.cpp
+ qxsdschemaparser_p.h
+ qxsdschemaparser_setup.cpp
+ qxsdschema_p.h
+ qxsdschemaresolver.cpp
+ qxsdschemaresolver_p.h
+ qxsdschematoken.cpp
+ qxsdschematoken_p.h
+ qxsdschematypesfactory.cpp
+ qxsdschematypesfactory_p.h
+ qxsdsimpletype.cpp
+ qxsdsimpletype_p.h
+ qxsdstatemachinebuilder.cpp
+ qxsdstatemachinebuilder_p.h
+ qxsdstatemachine.cpp
+ qxsdstatemachine_p.h
+ qxsdterm.cpp
+ qxsdterm_p.h
+ qxsdtypechecker.cpp
+ qxsdtypechecker_p.h
+ qxsduserschematype.cpp
+ qxsduserschematype_p.h
+ qxsdvalidatedxmlnodemodel.cpp
+ qxsdvalidatedxmlnodemodel_p.h
+ qxsdvalidatinginstancereader.cpp
+ qxsdvalidatinginstancereader_p.h
+ qxsdwildcard.cpp
+ qxsdwildcard_p.h
+ qxsdxpathexpression.cpp
+ qxsdxpathexpression_p.h
+ schema.pri
+ schemas/
+0 xml.xsd
+0 -LICENSE
+3 tokens.xml
+2 type/
+0 qabstractnodetest.cpp
+ qabstractnodetest_p.h
+ qanyitemtype.cpp
+ qanyitemtype_p.h
+ qanynodetype.cpp
+ qanynodetype_p.h
+ qanysimpletype.cpp
+ qanysimpletype_p.h
+ qanytype.cpp
+ qanytype_p.h
+ qatomiccasterlocator.cpp
+ qatomiccasterlocator_p.h
+ qatomiccasterlocators.cpp
+ qatomiccasterlocators_p.h
+ qatomiccomparatorlocator.cpp
+ qatomiccomparatorlocator_p.h
+ qatomiccomparatorlocators.cpp
+ qatomiccomparatorlocators_p.h
+ qatomicmathematicianlocator.cpp
+ qatomicmathematicianlocator_p.h
+ qatomicmathematicianlocators.cpp
+ qatomicmathematicianlocators_p.h
+ qatomictype.cpp
+ qatomictypedispatch_p.h
+ qatomictype_p.h
+ qbasictypesfactory.cpp
+ qbasictypesfactory_p.h
+ qbuiltinatomictype.cpp
+ qbuiltinatomictype_p.h
+ qbuiltinatomictypes.cpp
+ qbuiltinatomictypes_p.h
+ qbuiltinnodetype.cpp
+ qbuiltinnodetype_p.h
+ qbuiltintypes.cpp
+ qbuiltintypes_p.h
+ qcardinality.cpp
+ qcardinality_p.h
+ qcommonsequencetypes.cpp
+ qcommonsequencetypes_p.h
+ qebvtype.cpp
+ qebvtype_p.h
+ qemptysequencetype.cpp
+ qemptysequencetype_p.h
+ qgenericsequencetype.cpp
+ qgenericsequencetype_p.h
+ qitemtype.cpp
+ qitemtype_p.h
+ qlocalnametest.cpp
+ qlocalnametest_p.h
+ qmultiitemtype.cpp
+ qmultiitemtype_p.h
+ qnamedschemacomponent.cpp
+ qnamedschemacomponent_p.h
+ qnamespacenametest.cpp
+ qnamespacenametest_p.h
+ qnonetype.cpp
+ qnonetype_p.h
+ qnumerictype.cpp
+ qnumerictype_p.h
+ qprimitives_p.h
+ qqnametest.cpp
+ qqnametest_p.h
+ qschemacomponent.cpp
+ qschemacomponent_p.h
+ qschematype.cpp
+ qschematypefactory.cpp
+ qschematypefactory_p.h
+ qschematype_p.h
+ qsequencetype.cpp
+ qsequencetype_p.h
+ qtypechecker.cpp
+ qtypechecker_p.h
+ quntyped.cpp
+ quntyped_p.h
+ qxsltnodetest.cpp
+ qxsltnodetest_p.h
+ type.pri
+2 utils/
+0 qautoptr.cpp
+ qautoptr_p.h
+ qcommonnamespaces_p.h
+ qcppcastinghelper_p.h
+ qdebug_p.h
+ qdelegatingnamespaceresolver.cpp
+ qdelegatingnamespaceresolver_p.h
+ qgenericnamespaceresolver.cpp
+ qgenericnamespaceresolver_p.h
+ qnamepool.cpp
+ qnamepool_p.h
+ qnamespacebinding_p.h
+ qnamespaceresolver.cpp
+ qnamespaceresolver_p.h
+ qnodenamespaceresolver.cpp
+ qnodenamespaceresolver_p.h
+ qoutputvalidator.cpp
+ qoutputvalidator_p.h
+ qpatternistlocale.cpp
+ qpatternistlocale_p.h
+ qxpathhelper.cpp
+ qxpathhelper_p.h
+ utils.pri
+2 xmlpatterns.pro
+2 xml/sax/
+0 qxml.cpp
+ qxml.h
+ sax.pri
+2 xml/stream/
+0 qxmlstream.h
+ stream.pri
+2 xml/xml.pro
diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp
new file mode 100644
index 0000000000..236332b355
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp
@@ -0,0 +1,240 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QTest>
+
+#include <QDirIterator>
+#include <QFile>
+#include <QString>
+#include <QStack>
+
+#include "../../../../../shared/filesystem.h"
+
+class bench_QDir_tree
+ : public QObject
+{
+ Q_OBJECT
+
+public:
+ bench_QDir_tree()
+ : prefix("./test-tree/"),
+ musicprefix(QLatin1String("music")),
+ photoprefix(QLatin1String("photos")),
+ sourceprefix(QLatin1String("source")),
+ musicsize(0),
+ photosize(0),
+ sourcesize(0)
+ {
+ }
+
+private:
+ QByteArray prefix;
+ QString musicprefix;
+ QString photoprefix;
+ QString sourceprefix;
+ qint64 musicsize;
+ qint64 photosize;
+ qint64 sourcesize;
+
+private slots:
+ void initTestCase()
+ {
+ QFile list(":/4.6.0-list.txt");
+ QVERIFY(list.open(QIODevice::ReadOnly | QIODevice::Text));
+
+ QVERIFY(fs.createDirectory(prefix));
+
+ QStack<QByteArray> stack;
+ QByteArray line;
+ Q_FOREVER {
+ char ch;
+ if (!list.getChar(&ch))
+ break;
+ if (ch != ' ') {
+ line.append(ch);
+ continue;
+ }
+
+ int pop = 1;
+ if (!line.isEmpty())
+ pop = line.toInt();
+
+ while (pop) {
+ stack.pop();
+ --pop;
+ }
+
+ line = list.readLine();
+ line.chop(1);
+ stack.push(line);
+
+ line = prefix;
+ Q_FOREACH(const QByteArray &pathElement, stack)
+ line += pathElement;
+
+ if (line.endsWith('/'))
+ QVERIFY(fs.createDirectory(line));
+ else
+ QVERIFY(fs.createFile(line));
+
+ line.clear();
+ }
+
+ //Use case: music collection - 10 files in 100 directories (albums)
+ QVERIFY(fs.createDirectory(musicprefix));
+ for (int i=0;i<1000;i++) {
+ if ((i % 10) == 0)
+ QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(musicprefix).arg(i/10)));
+ qint64 size = fs.createFileWithContent(QString("%1/directory%2/file%3").arg(musicprefix).arg(i/10).arg(i));
+ QVERIFY(size > 0);
+ musicsize += size;
+ }
+ //Use case: photos - 1000 files in 1 directory
+ QVERIFY(fs.createDirectory(photoprefix));
+ for (int i=0;i<1000;i++) {
+ qint64 size = fs.createFileWithContent(QString("%1/file%2").arg(photoprefix).arg(i));
+ QVERIFY(size > 0);
+ photosize += size;
+ }
+ //Use case: source - 10 files in 10 subdirectories in 10 directories (1000 total)
+ QVERIFY(fs.createDirectory(sourceprefix));
+ for (int i=0;i<1000;i++) {
+ if ((i % 100) == 0)
+ QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(sourceprefix).arg(i/100)));
+ if ((i % 10) == 0)
+ QVERIFY(fs.createDirectory(QString("%1/directory%2/subdirectory%3").arg(sourceprefix).arg(i/100).arg(i/10)));
+ qint64 size = fs.createFileWithContent(QString("%1/directory%2/subdirectory%3/file%4").arg(sourceprefix).arg(i/100).arg(i/10).arg(i));
+ QVERIFY(size > 0);
+ sourcesize += size;
+ }
+ }
+
+ void fileSearch_data() const
+ {
+ QTest::addColumn<QStringList>("nameFilters");
+ QTest::addColumn<int>("filter");
+ QTest::addColumn<int>("entryCount");
+
+ QTest::newRow("*.cpp") << QStringList("*.cpp")
+ << int(QDir::Files)
+ << 3813;
+
+ QTest::newRow("executables") << QStringList("*")
+ << int(QDir::Executable | QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot)
+ << 543;
+ }
+
+ void fileSearch() const
+ {
+ QFETCH(QStringList, nameFilters);
+ QFETCH(int, filter);
+ QFETCH(int, entryCount);
+
+ int count = 0;
+ QBENCHMARK {
+ // Recursive directory iteration
+ QDirIterator iterator(prefix, nameFilters, QDir::Filter(filter),
+ QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+
+ count = 0;
+ while (iterator.hasNext()) {
+ iterator.next();
+ ++count;
+ }
+
+ QCOMPARE(count, entryCount);
+ }
+
+ QCOMPARE(count, entryCount);
+ }
+
+ void traverseDirectory() const
+ {
+ int count = 0;
+ QBENCHMARK {
+ QDirIterator iterator(prefix,
+ QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System,
+ QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+
+ count = 0;
+ while (iterator.hasNext()) {
+ iterator.next();
+ ++count;
+ }
+
+ QCOMPARE(count, 11963);
+ }
+
+ QCOMPARE(count, 11963);
+ }
+
+ void thousandFiles_data() const
+ {
+ QTest::addColumn<QString>("dirName");
+ QTest::addColumn<qint64>("expectedSize");
+ QTest::newRow("music") << musicprefix << musicsize;
+ QTest::newRow("photos") << photoprefix << photosize;
+ QTest::newRow("src") << sourceprefix << sourcesize;
+ }
+
+ void thousandFiles() const
+ {
+ QFETCH(QString, dirName);
+ QFETCH(qint64, expectedSize);
+ QBENCHMARK {
+ qint64 totalsize = 0;
+ int count = 0;
+ QDirIterator iter(dirName, QDir::Files, QDirIterator::Subdirectories);
+ while(iter.hasNext()) {
+ iter.next();
+ count++;
+ totalsize += iter.fileInfo().size();
+ }
+ QCOMPARE(count, 1000);
+ QCOMPARE(totalsize, expectedSize);
+ }
+ }
+private:
+ FileSystem fs;
+};
+
+QTEST_MAIN(bench_QDir_tree)
+#include "bench_qdir_tree.moc"
diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.qrc b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.qrc
new file mode 100644
index 0000000000..d57cb6c368
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>4.6.0-list.txt</file>
+</qresource>
+</RCC>
diff --git a/tests/benchmarks/corelib/io/qdir/tree/tree.pro b/tests/benchmarks/corelib/io/qdir/tree/tree.pro
new file mode 100644
index 0000000000..773f0f7ccd
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdir/tree/tree.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = bench_qdir_tree
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += bench_qdir_tree.cpp
+RESOURCES += bench_qdir_tree.qrc
+
+QT -= gui
diff --git a/tests/benchmarks/corelib/io/qdiriterator/main.cpp b/tests/benchmarks/corelib/io/qdiriterator/main.cpp
new file mode 100644
index 0000000000..fb9626f8db
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdiriterator/main.cpp
@@ -0,0 +1,251 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDebug>
+#include <QDirIterator>
+#include <QString>
+
+#ifdef Q_OS_WIN
+# include <windows.h>
+# include <atlbase.h>
+#else
+# include <sys/stat.h>
+# include <sys/types.h>
+# include <dirent.h>
+# include <errno.h>
+# include <string.h>
+#endif
+
+#include <qtest.h>
+
+#include "qfilesystemiterator.h"
+
+class tst_qdiriterator : public QObject
+{
+ Q_OBJECT
+private slots:
+ void posix();
+ void posix_data() { data(); }
+ void diriterator();
+ void diriterator_data() { data(); }
+ void fsiterator();
+ void fsiterator_data() { data(); }
+ void data();
+};
+
+
+void tst_qdiriterator::data()
+{
+#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
+ QByteArray qtdir = qPrintable(QCoreApplication::applicationDirPath());
+ qtdir += "/depot";
+#else
+#if defined(Q_OS_WIN)
+ const char *qtdir = "C:\\depot\\qt\\main";
+#else
+ const char *qtdir = ::getenv("QTDIR");
+#endif
+ if (!qtdir) {
+ fprintf(stderr, "QTDIR not set\n");
+ exit(1);
+ }
+#endif
+
+ QTest::addColumn<QByteArray>("dirpath");
+ QByteArray ba = QByteArray(qtdir) + "/src/corelib";
+ QByteArray ba1 = ba + "/io";
+ QTest::newRow(ba) << ba;
+ //QTest::newRow(ba1) << ba1;
+}
+
+#ifdef Q_OS_WIN
+static int posix_helper(const wchar_t *dirpath)
+{
+ int count = 0;
+ HANDLE hSearch;
+ WIN32_FIND_DATA fd;
+
+ const size_t origDirPathLength = wcslen(dirpath);
+
+ wchar_t appendedPath[MAX_PATH];
+ wcscpy(appendedPath, dirpath);
+ wcscat(appendedPath, L"\\*");
+ hSearch = FindFirstFile(appendedPath, &fd);
+ appendedPath[origDirPathLength] = 0;
+
+ if (hSearch == INVALID_HANDLE_VALUE) {
+ qWarning("FindFirstFile failed");
+ return count;
+ }
+
+ do {
+ if (!(fd.cFileName[0] == L'.' && fd.cFileName[1] == 0) &&
+ !(fd.cFileName[0] == L'.' && fd.cFileName[1] == L'.' && fd.cFileName[2] == 0))
+ {
+ if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ wcscat(appendedPath, L"\\");
+ wcscat(appendedPath, fd.cFileName);
+ count += posix_helper(appendedPath);
+ appendedPath[origDirPathLength] = 0;
+ }
+ else {
+ ++count;
+ }
+ }
+ } while (FindNextFile(hSearch, &fd));
+ FindClose(hSearch);
+
+ return count;
+}
+
+#else
+
+static int posix_helper(const char *dirpath)
+{
+ //qDebug() << "DIR" << dirpath;
+ DIR *dir = ::opendir(dirpath);
+ if (!dir)
+ return 0;
+
+ dirent *entry = 0;
+
+ int count = 0;
+ while ((entry = ::readdir(dir))) {
+ if (qstrcmp(entry->d_name, ".") == 0)
+ continue;
+ if (qstrcmp(entry->d_name, "..") == 0)
+ continue;
+ ++count;
+ QByteArray ba = dirpath;
+ ba += '/';
+ ba += entry->d_name;
+ struct stat st;
+ lstat(ba.constData(), &st);
+ if (S_ISDIR(st.st_mode))
+ count += posix_helper(ba.constData());
+ }
+
+ ::closedir(dir);
+ return count;
+}
+#endif
+
+
+void tst_qdiriterator::posix()
+{
+ QFETCH(QByteArray, dirpath);
+
+ int count = 0;
+ QString path(dirpath);
+ QBENCHMARK {
+#ifdef Q_OS_WIN
+ count = posix_helper(path.utf16());
+#else
+ count = posix_helper(dirpath.constData());
+#endif
+ }
+ qDebug() << count;
+}
+
+void tst_qdiriterator::diriterator()
+{
+ QFETCH(QByteArray, dirpath);
+
+ int count = 0;
+
+ QBENCHMARK {
+ int c = 0;
+
+ QDirIterator dir(dirpath,
+ //QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot,
+ //QDir::AllEntries | QDir::Hidden,
+ QDir::Files,
+ QDirIterator::Subdirectories);
+
+ while (dir.hasNext()) {
+ dir.next();
+ //printf("%s\n", qPrintable(dir.fileName()));
+ 0 && printf("%d %s\n",
+ dir.fileInfo().isDir(),
+ //qPrintable(dir.fileInfo().absoluteFilePath()),
+ //qPrintable(dir.path()),
+ qPrintable(dir.filePath()));
+ ++c;
+ }
+ count = c;
+ }
+ qDebug() << count;
+}
+
+void tst_qdiriterator::fsiterator()
+{
+ QFETCH(QByteArray, dirpath);
+
+ int count = 0;
+ int dump = 0;
+
+ QBENCHMARK {
+ int c = 0;
+
+ dump && printf("\n\n\n\n");
+ QFileSystemIterator dir(dirpath,
+ //QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot,
+ //QDir::AllEntries | QDir::Hidden,
+ //QDir::Files | QDir::NoDotAndDotDot,
+ QDir::Files,
+ QFileSystemIterator::Subdirectories);
+
+ for (; !dir.atEnd(); dir.next()) {
+ dump && printf("%d %s\n",
+ dir.fileInfo().isDir(),
+ //qPrintable(dir.fileInfo().absoluteFilePath()),
+ //qPrintable(dir.path()),
+ qPrintable(dir.filePath())
+ );
+ ++c;
+ }
+ count = c;
+ }
+ qDebug() << count;
+}
+
+QTEST_MAIN(tst_qdiriterator)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro b/tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro
new file mode 100755
index 0000000000..17d164d463
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro
@@ -0,0 +1,23 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qdiriterator
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+CONFIG += debug
+
+
+SOURCES += main.cpp
+
+SOURCES += qfilesystemiterator.cpp
+HEADERS += qfilesystemiterator.h
+
+wince*|symbian: {
+ corelibdir.files = $$QT_SOURCE_TREE/src/corelib
+ corelibdir.path = ./depot/src
+ DEPLOYMENT += corelibdir
+}
+
diff --git a/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp
new file mode 100644
index 0000000000..ba5f3887f9
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.cpp
@@ -0,0 +1,678 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \since 4.5
+ \class QFileSystemIterator
+ \brief The QFileSystemIterator class provides an iterator for directory entrylists.
+
+ You can use QFileSystemIterator to navigate entries of a directory one at a time.
+ It is similar to QDir::entryList() and QDir::entryInfoList(), but because
+ it lists entries one at a time instead of all at once, it scales better
+ and is more suitable for large directories. It also supports listing
+ directory contents recursively, and following symbolic links. Unlike
+ QDir::entryList(), QFileSystemIterator does not support sorting.
+
+ The QFileSystemIterator constructor takes a QDir or a directory as
+ argument. After construction, the iterator is located before the first
+ directory entry. Here's how to iterate over all the entries sequentially:
+
+ \snippet doc/src/snippets/code/src.corelib.io.qdiriterator.cpp 0
+
+ The next() function returns the path to the next directory entry and
+ advances the iterator. You can also call filePath() to get the current
+ file path without advancing the iterator. The fileName() function returns
+ only the name of the file, similar to how QDir::entryList() works. You can
+ also call fileInfo() to get a QFileInfo for the current entry.
+
+ Unlike Qt's container iterators, QFileSystemIterator is uni-directional (i.e.,
+ you cannot iterate directories in reverse order) and does not allow random
+ access.
+
+ QFileSystemIterator works with all supported file engines, and is implemented
+ using QAbstractFileEngineIterator.
+
+ \sa QDir, QDir::entryList(), QAbstractFileEngineIterator
+*/
+
+/*! \enum QFileSystemIterator::IteratorFlag
+
+ This enum describes flags that you can combine to configure the behavior
+ of QFileSystemIterator.
+
+ \value NoIteratorFlags The default value, representing no flags. The
+ iterator will return entries for the assigned path.
+
+ \value Subdirectories List entries inside all subdirectories as well.
+
+ \value FollowSymlinks When combined with Subdirectories, this flag
+ enables iterating through all subdirectories of the assigned path,
+ following all symbolic links. Symbolic link loops (e.g., "link" => "." or
+ "link" => "..") are automatically detected and ignored.
+*/
+
+#include "qfilesystemiterator.h"
+
+#include <QDebug>
+#include <QtCore/qset.h>
+#include <QtCore/qstack.h>
+#include <QtCore/qvariant.h>
+
+#ifdef Q_OS_WIN
+# include <windows.h>
+# include <atlbase.h>
+#else
+# include <sys/stat.h>
+# include <sys/types.h>
+# include <dirent.h>
+# include <errno.h>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+class QFileSystemIteratorPrivate
+{
+public:
+ QFileSystemIteratorPrivate(const QString &path, const QStringList &nameFilters,
+ QDir::Filters filters, QFileSystemIterator::IteratorFlags flags);
+ ~QFileSystemIteratorPrivate();
+
+ void pushSubDirectory(const QByteArray &path);
+ void advance();
+ bool isAcceptable() const;
+ bool shouldFollowDirectory(const QFileInfo &);
+ //bool matchesFilters(const QAbstractFileEngineIterator *it) const;
+ inline bool atEnd() const { return m_dirPaths.isEmpty(); }
+
+#ifdef Q_OS_WIN
+ QStack<HANDLE> m_dirStructs;
+ WIN32_FIND_DATA* m_entry;
+ WIN32_FIND_DATA m_fileSearchResult;
+ bool m_bFirstSearchResult;
+#else
+ QStack<DIR *> m_dirStructs;
+ dirent *m_entry;
+#endif
+
+ QSet<QString> visitedLinks;
+ QStack<QByteArray> m_dirPaths;
+ QFileInfo fileInfo;
+ QString currentFilePath;
+ QFileSystemIterator::IteratorFlags iteratorFlags;
+ QDir::Filters filters;
+ QStringList nameFilters;
+
+ enum { DontShowDir, ShowDotDotDir, ShowDotDir, ShowDir }
+ m_currentDirShown, m_nextDirShown;
+
+ QFileSystemIterator *q;
+
+private:
+ bool advanceHelper(); // returns true if we know we have something suitable
+};
+
+/*!
+ \internal
+*/
+QFileSystemIteratorPrivate::QFileSystemIteratorPrivate(const QString &path,
+ const QStringList &nameFilters, QDir::Filters filters,
+ QFileSystemIterator::IteratorFlags flags)
+ : iteratorFlags(flags)
+{
+ if (filters == QDir::NoFilter)
+ filters = QDir::AllEntries;
+ this->filters = filters;
+ this->nameFilters = nameFilters;
+
+ fileInfo.setFile(path);
+ QString dir = fileInfo.isSymLink() ? fileInfo.canonicalFilePath() : path;
+ pushSubDirectory(dir.toLocal8Bit());
+ // skip to acceptable entry
+ while (true) {
+ if (atEnd())
+ return;
+ if (isAcceptable())
+ return;
+ if (advanceHelper())
+ return;
+ }
+}
+
+/*!
+ \internal
+*/
+QFileSystemIteratorPrivate::~QFileSystemIteratorPrivate()
+{
+#ifdef Q_OS_WIN
+ while (!m_dirStructs.isEmpty())
+ ::FindClose(m_dirStructs.pop());
+#else
+ while (!m_dirStructs.isEmpty())
+ ::closedir(m_dirStructs.pop());
+#endif
+}
+
+#ifdef Q_OS_WIN
+static bool isDotOrDotDot(const wchar_t* name)
+{
+ if (name[0] == L'.' && name[1] == 0)
+ return true;
+ if (name[0] == L'.' && name[1] == L'.' && name[2] == 0)
+ return true;
+ return false;
+}
+#else
+static bool isDotOrDotDot(const char *name)
+{
+ if (name[0] == '.' && name[1] == 0)
+ return true;
+ if (name[0] == '.' && name[1] == '.' && name[2] == 0)
+ return true;
+ return false;
+}
+#endif
+
+/*!
+ \internal
+*/
+void QFileSystemIteratorPrivate::pushSubDirectory(const QByteArray &path)
+{
+/*
+ if (iteratorFlags & QFileSystemIterator::FollowSymlinks) {
+ if (fileInfo.filePath() != path)
+ fileInfo.setFile(path);
+ if (fileInfo.isSymLink()) {
+ visitedLinks << fileInfo.canonicalFilePath();
+ } else {
+ visitedLinks << fileInfo.absoluteFilePath();
+ }
+ }
+*/
+
+#ifdef Q_OS_WIN
+ wchar_t szSearchPath[MAX_PATH];
+ wcscpy(szSearchPath, QString(path).utf16());
+ wcscat(szSearchPath, L"\\*");
+ HANDLE dir = FindFirstFile(szSearchPath, &m_fileSearchResult);
+ m_bFirstSearchResult = true;
+#else
+ DIR *dir = ::opendir(path.constData());
+ //m_entry = ::readdir(dir);
+ //while (m_entry && isDotOrDotDot(m_entry->d_name))
+ // m_entry = ::readdir(m_dirStructs.top());
+#endif
+ m_dirStructs.append(dir);
+ m_dirPaths.append(path);
+ m_entry = 0;
+ if (filters & QDir::Dirs)
+ m_nextDirShown = ShowDir;
+ else
+ m_nextDirShown = DontShowDir;
+ m_currentDirShown = DontShowDir;
+}
+
+/*!
+ \internal
+*/
+bool QFileSystemIteratorPrivate::isAcceptable() const
+{
+ if (!m_entry)
+ return false;
+ return true;
+}
+
+/*!
+ \internal
+*/
+
+
+void QFileSystemIteratorPrivate::advance()
+{
+ while (true) {
+ if (advanceHelper())
+ return;
+ if (atEnd())
+ return;
+ if (isAcceptable())
+ return;
+ }
+}
+
+bool QFileSystemIteratorPrivate::advanceHelper()
+{
+ if (m_dirStructs.isEmpty())
+ return true;
+
+ //printf("ADV %d %d\n", int(m_currentDirShown), int(m_nextDirShown));
+
+ if ((filters & QDir::Dirs)) {
+ m_currentDirShown = m_nextDirShown;
+ if (m_nextDirShown == ShowDir) {
+ //printf("RESTING ON DIR %s %x\n", m_dirPaths.top().constData(), int(filters));
+ m_nextDirShown = (filters & QDir::NoDotAndDotDot) ? DontShowDir : ShowDotDir;
+ // skip start directory itself
+ if (m_dirStructs.size() == 1 && m_currentDirShown == ShowDir)
+ return advanceHelper();
+ return true;
+ }
+ if (m_nextDirShown == ShowDotDir) {
+ //printf("RESTING ON DOT %s %x\n", m_dirPaths.top().constData(), int(filters));
+ m_nextDirShown = ShowDotDotDir;
+ return true;
+ }
+ if (m_nextDirShown == ShowDotDotDir) {
+ //printf("RESTING ON DOTDOT %s %x\n", m_dirPaths.top().constData(), int(filters));
+ m_nextDirShown = DontShowDir;
+ return true;
+ }
+ m_currentDirShown = DontShowDir;
+ }
+
+#ifdef Q_OS_WIN
+ m_entry = &m_fileSearchResult;
+ if (m_bFirstSearchResult) {
+ m_bFirstSearchResult = false;
+ } else {
+ if (!FindNextFile(m_dirStructs.top(), m_entry))
+ m_entry = 0;
+ }
+
+ while (m_entry && isDotOrDotDot(m_entry->cFileName))
+ if (!FindNextFile(m_dirStructs.top(), m_entry))
+ m_entry = 0;
+
+ if (!m_entry) {
+ m_dirPaths.pop();
+ FindClose(m_dirStructs.pop());
+ return false;
+ }
+
+ if (m_entry->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ QByteArray ba = m_dirPaths.top();
+ ba += '\\';
+ ba += QString::fromWCharArray(m_entry->cFileName);
+ pushSubDirectory(ba);
+ }
+#else
+ m_entry = ::readdir(m_dirStructs.top());
+ while (m_entry && isDotOrDotDot(m_entry->d_name))
+ m_entry = ::readdir(m_dirStructs.top());
+ //return false; // further iteration possibly needed
+ //printf("READ %p %s\n", m_entry, m_entry ? m_entry->d_name : "");
+
+ if (!m_entry) {
+ m_dirPaths.pop();
+ DIR *dir = m_dirStructs.pop();
+ ::closedir(dir);
+ return false; // further iteration possibly needed
+ }
+
+ const char *name = m_entry->d_name;
+
+ QByteArray ba = m_dirPaths.top();
+ ba += '/';
+ ba += name;
+ struct stat st;
+ lstat(ba.constData(), &st);
+
+ if (S_ISDIR(st.st_mode)) {
+ pushSubDirectory(ba);
+ return false; // further iteration possibly needed
+ }
+#endif
+ return false; // further iteration possiblye needed
+}
+
+/*!
+ \internal
+ */
+bool QFileSystemIteratorPrivate::shouldFollowDirectory(const QFileInfo &fileInfo)
+{
+ // If we're doing flat iteration, we're done.
+ if (!(iteratorFlags & QFileSystemIterator::Subdirectories))
+ return false;
+
+ // Never follow non-directory entries
+ if (!fileInfo.isDir())
+ return false;
+
+
+ // Never follow . and ..
+ if (fileInfo.fileName() == QLatin1String(".") || fileInfo.fileName() == QLatin1String(".."))
+ return false;
+
+
+ // Check symlinks
+ if (fileInfo.isSymLink() && !(iteratorFlags & QFileSystemIterator::FollowSymlinks)) {
+ // Follow symlinks only if FollowSymlinks was passed
+ return false;
+ }
+
+ // Stop link loops
+ if (visitedLinks.contains(fileInfo.canonicalFilePath()))
+ return false;
+
+ return true;
+}
+
+
+/*!
+ \internal
+
+ This convenience function implements the iterator's filtering logics and
+ applies then to the current directory entry.
+
+ It returns true if the current entry matches the filters (i.e., the
+ current entry will be returned as part of the directory iteration);
+ otherwise, false is returned.
+*/
+#if 0
+bool QFileSystemIteratorPrivate::matchesFilters(const QAbstractFileEngineIterator *it) const
+{
+ const bool filterPermissions = ((filters & QDir::PermissionMask)
+ && (filters & QDir::PermissionMask) != QDir::PermissionMask);
+ const bool skipDirs = !(filters & (QDir::Dirs | QDir::AllDirs));
+ const bool skipFiles = !(filters & QDir::Files);
+ const bool skipSymlinks = (filters & QDir::NoSymLinks);
+ const bool doReadable = !filterPermissions || (filters & QDir::Readable);
+ const bool doWritable = !filterPermissions || (filters & QDir::Writable);
+ const bool doExecutable = !filterPermissions || (filters & QDir::Executable);
+ const bool includeHidden = (filters & QDir::Hidden);
+ const bool includeSystem = (filters & QDir::System);
+
+#ifndef QT_NO_REGEXP
+ // Prepare name filters
+ QList<QRegExp> regexps;
+ bool hasNameFilters = !nameFilters.isEmpty() && !(nameFilters.contains(QLatin1String("*")));
+ if (hasNameFilters) {
+ for (int i = 0; i < nameFilters.size(); ++i) {
+ regexps << QRegExp(nameFilters.at(i),
+ (filters & QDir::CaseSensitive) ? Qt::CaseSensitive : Qt::CaseInsensitive,
+ QRegExp::Wildcard);
+ }
+ }
+#endif
+
+ QString fileName = it->currentFileName();
+ if (fileName.isEmpty()) {
+ // invalid entry
+ return false;
+ }
+
+ QFileInfo fi = it->currentFileInfo();
+ QString filePath = it->currentFilePath();
+
+#ifndef QT_NO_REGEXP
+ // Pass all entries through name filters, except dirs if the AllDirs
+ // filter is passed.
+ if (hasNameFilters && !((filters & QDir::AllDirs) && fi.isDir())) {
+ bool matched = false;
+ for (int i = 0; i < regexps.size(); ++i) {
+ if (regexps.at(i).exactMatch(fileName)) {
+ matched = true;
+ break;
+ }
+ }
+ if (!matched)
+ return false;
+ }
+#endif
+
+ bool dotOrDotDot = (fileName == QLatin1String(".") || fileName == QLatin1String(".."));
+ if ((filters & QDir::NoDotAndDotDot) && dotOrDotDot)
+ return false;
+
+ bool isHidden = !dotOrDotDot && fi.isHidden();
+ if (!includeHidden && isHidden)
+ return false;
+
+ bool isSystem = (!fi.isFile() && !fi.isDir() && !fi.isSymLink())
+ || (!fi.exists() && fi.isSymLink());
+ if (!includeSystem && isSystem)
+ return false;
+
+ bool alwaysShow = (filters & QDir::TypeMask) == 0
+ && ((isHidden && includeHidden)
+ || (includeSystem && isSystem));
+
+ // Skip files and directories
+ if ((filters & QDir::AllDirs) == 0 && skipDirs && fi.isDir()) {
+ if (!alwaysShow)
+ return false;
+ }
+
+ if ((skipFiles && (fi.isFile() || !fi.exists()))
+ || (skipSymlinks && fi.isSymLink())) {
+ if (!alwaysShow)
+ return false;
+ }
+
+ if (filterPermissions
+ && ((doReadable && !fi.isReadable())
+ || (doWritable && !fi.isWritable())
+ || (doExecutable && !fi.isExecutable()))) {
+ return false;
+ }
+
+ if (!includeSystem && !dotOrDotDot && ((fi.exists() && !fi.isFile() && !fi.isDir() && !fi.isSymLink())
+ || (!fi.exists() && fi.isSymLink()))) {
+ return false;
+ }
+
+ return true;
+}
+#endif
+
+/*!
+ Constructs a QFileSystemIterator that can iterate over \a dir's entrylist, using
+ \a dir's name filters and regular filters. You can pass options via \a
+ flags to decide how the directory should be iterated.
+
+ By default, \a flags is NoIteratorFlags, which provides the same behavior
+ as in QDir::entryList().
+
+ The sorting in \a dir is ignored.
+
+ \sa atEnd(), next(), IteratorFlags
+*/
+QFileSystemIterator::QFileSystemIterator(const QDir &dir, IteratorFlags flags)
+ : d(new QFileSystemIteratorPrivate(dir.path(), dir.nameFilters(), dir.filter(), flags))
+{
+ d->q = this;
+}
+
+/*!
+ Constructs a QFileSystemIterator that can iterate over \a path, with no name
+ filtering and \a filters for entry filtering. You can pass options via \a
+ flags to decide how the directory should be iterated.
+
+ By default, \a filters is QDir::NoFilter, and \a flags is NoIteratorFlags,
+ which provides the same behavior as in QDir::entryList().
+
+ \sa atEnd(), next(), IteratorFlags
+*/
+QFileSystemIterator::QFileSystemIterator(const QString &path, QDir::Filters filters, IteratorFlags flags)
+ : d(new QFileSystemIteratorPrivate(path, QStringList(QLatin1String("*")), filters, flags))
+{
+ d->q = this;
+}
+
+/*!
+ Constructs a QFileSystemIterator that can iterate over \a path. You can pass
+ options via \a flags to decide how the directory should be iterated.
+
+ By default, \a flags is NoIteratorFlags, which provides the same behavior
+ as in QDir::entryList().
+
+ \sa atEnd(), next(), IteratorFlags
+*/
+QFileSystemIterator::QFileSystemIterator(const QString &path, IteratorFlags flags)
+ : d(new QFileSystemIteratorPrivate(path, QStringList(QLatin1String("*")), QDir::NoFilter, flags))
+{
+ d->q = this;
+}
+
+/*!
+ Constructs a QFileSystemIterator that can iterate over \a path, using \a
+ nameFilters and \a filters. You can pass options via \a flags to decide
+ how the directory should be iterated.
+
+ By default, \a flags is NoIteratorFlags, which provides the same behavior
+ as QDir::entryList().
+
+ \sa atEnd(), next(), IteratorFlags
+*/
+QFileSystemIterator::QFileSystemIterator(const QString &path, const QStringList &nameFilters,
+ QDir::Filters filters, IteratorFlags flags)
+ : d(new QFileSystemIteratorPrivate(path, nameFilters, filters, flags))
+{
+ d->q = this;
+}
+
+/*!
+ Destroys the QFileSystemIterator.
+*/
+QFileSystemIterator::~QFileSystemIterator()
+{
+ delete d;
+}
+
+/*!
+ Advances the iterator to the next entry, and returns the file path of this
+ new entry. If atEnd() returns true, this function does nothing, and
+ returns a null QString.
+
+ You can call fileName() or filePath() to get the current entry file name
+ or path, or fileInfo() to get a QFileInfo for the current entry.
+
+ \sa hasNext(), fileName(), filePath(), fileInfo()
+*/
+void QFileSystemIterator::next()
+{
+ d->advance();
+}
+
+/*!
+ Returns true if there is at least one more entry in the directory;
+ otherwise, false is returned.
+
+ \sa next(), fileName(), filePath(), fileInfo()
+*/
+bool QFileSystemIterator::atEnd() const
+{
+ return d->atEnd();
+}
+
+/*!
+ Returns the file name for the current directory entry, without the path
+ prepended. If the current entry is invalid (i.e., isValid() returns
+ false), a null QString is returned.
+
+ This function is provided for the convenience when iterating single
+ directories. For recursive iteration, you should call filePath() or
+ fileInfo() instead.
+
+ \sa filePath(), fileInfo()
+*/
+QString QFileSystemIterator::fileName() const
+{
+ if (d->atEnd() || !d->m_entry)
+ return QString();
+ if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDir)
+ return QString();
+ if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDotDir)
+ return QLatin1String("@");
+ if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDotDotDir)
+ return QLatin1String("@@");
+#ifdef Q_OS_WIN
+ return QString::fromWCharArray(d->m_entry->cFileName);
+#else
+ return QString::fromLocal8Bit(d->m_entry->d_name);
+#endif
+}
+
+/*!
+ Returns the full file path for the current directory entry. If the current
+ entry is invalid (i.e., isValid() returns false), a null QString is
+ returned.
+
+ \sa fileInfo(), fileName()
+*/
+QString QFileSystemIterator::filePath() const
+{
+ if (d->atEnd())
+ return QString();
+ QByteArray ba = d->m_dirPaths.top();
+ if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDotDir)
+ ba += "/.";
+ else if (d->m_currentDirShown == QFileSystemIteratorPrivate::ShowDotDotDir)
+ ba += "/..";
+ else if (d->m_entry) {
+ ba += '/';
+#ifdef Q_OS_WIN
+ ba += QString::fromWCharArray(d->m_entry->cFileName);
+#else
+ ba += d->m_entry->d_name;
+#endif
+ }
+ return QString::fromLocal8Bit(ba);
+}
+
+/*!
+ Returns a QFileInfo for the current directory entry. If the current entry
+ is invalid (i.e., isValid() returns false), a null QFileInfo is returned.
+
+ \sa filePath(), fileName()
+*/
+QFileInfo QFileSystemIterator::fileInfo() const
+{
+ return QFileInfo(filePath());
+}
+
+/*!
+ Returns the base directory of the iterator.
+*/
+QString QFileSystemIterator::path() const
+{
+ return QString::fromLocal8Bit(d->m_dirPaths.top());
+}
+
+QT_END_NAMESPACE
diff --git a/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h
new file mode 100644
index 0000000000..b382b2534c
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qdiriterator/qfilesystemiterator.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QFILESYSTEMITERATOR_H
+#define QFILESYSTEMITERATOR_H
+
+#include <QtCore/qdir.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Core)
+
+class QFileSystemIteratorPrivate;
+class //Q_CORE_EXPORT
+QFileSystemIterator
+{
+public:
+ enum IteratorFlag {
+ NoIteratorFlags = 0x0,
+ FollowSymlinks = 0x1,
+ Subdirectories = 0x2
+ };
+ Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag)
+
+ QFileSystemIterator(const QDir &dir, IteratorFlags flags = NoIteratorFlags);
+ QFileSystemIterator(const QString &path,
+ IteratorFlags flags = NoIteratorFlags);
+ QFileSystemIterator(const QString &path,
+ QDir::Filters filter,
+ IteratorFlags flags = NoIteratorFlags);
+ QFileSystemIterator(const QString &path,
+ const QStringList &nameFilters,
+ QDir::Filters filters = QDir::NoFilter,
+ IteratorFlags flags = NoIteratorFlags);
+
+ virtual ~QFileSystemIterator();
+
+ void next();
+ bool atEnd() const;
+
+ QString fileName() const;
+ QString filePath() const;
+ QFileInfo fileInfo() const;
+ QString path() const;
+
+private:
+ Q_DISABLE_COPY(QFileSystemIterator)
+
+ QFileSystemIteratorPrivate *d;
+ friend class QDir;
+};
+
+Q_DECLARE_OPERATORS_FOR_FLAGS(QFileSystemIterator::IteratorFlags)
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/tests/benchmarks/corelib/io/qfile/main.cpp b/tests/benchmarks/corelib/io/qfile/main.cpp
new file mode 100644
index 0000000000..9c8684db0c
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qfile/main.cpp
@@ -0,0 +1,684 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QTemporaryFile>
+#include <QFSFileEngine>
+#include <QString>
+#include <QDirIterator>
+
+#include <qtest.h>
+
+#include <stdio.h>
+
+#ifdef Q_OS_WIN
+# include <windows.h>
+# include <atlbase.h>
+#endif
+
+#define BUFSIZE 1024*512
+#define FACTOR 1024*512
+#define TF_SIZE FACTOR*81
+
+// 10 predefined (but random() seek positions
+// hardcoded to be comparable over several runs
+const int seekpos[] = {int(TF_SIZE*0.52),
+ int(TF_SIZE*0.23),
+ int(TF_SIZE*0.73),
+ int(TF_SIZE*0.77),
+ int(TF_SIZE*0.80),
+ int(TF_SIZE*0.12),
+ int(TF_SIZE*0.53),
+ int(TF_SIZE*0.21),
+ int(TF_SIZE*0.27),
+ int(TF_SIZE*0.78)};
+
+const int sp_size = sizeof(seekpos)/sizeof(int);
+
+class tst_qfile: public QObject
+{
+Q_ENUMS(BenchmarkType)
+Q_OBJECT
+public:
+ enum BenchmarkType {
+ QFileBenchmark = 1,
+ QFSFileEngineBenchmark,
+ Win32Benchmark,
+ PosixBenchmark,
+ QFileFromPosixBenchmark
+ };
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+
+ void open_data();
+ void open();
+ void seek_data();
+ void seek();
+
+ void readSmallFiles_QFile();
+ void readSmallFiles_QFSFileEngine();
+ void readSmallFiles_posix();
+ void readSmallFiles_Win32();
+
+ void readSmallFiles_QFile_data();
+ void readSmallFiles_QFSFileEngine_data();
+ void readSmallFiles_posix_data();
+ void readSmallFiles_Win32_data();
+
+ void readBigFile_QFile_data();
+ void readBigFile_QFSFileEngine_data();
+ void readBigFile_posix_data();
+ void readBigFile_Win32_data();
+
+ void readBigFile_QFile();
+ void readBigFile_QFSFileEngine();
+ void readBigFile_posix();
+ void readBigFile_Win32();
+
+private:
+ void readBigFile_data(BenchmarkType type, QIODevice::OpenModeFlag t, QIODevice::OpenModeFlag b);
+ void readBigFile();
+ void readSmallFiles_data(BenchmarkType type, QIODevice::OpenModeFlag t, QIODevice::OpenModeFlag b);
+ void readSmallFiles();
+ void createFile();
+ void fillFile(int factor=FACTOR);
+ void removeFile();
+ void createSmallFiles();
+ void removeSmallFiles();
+ QString filename;
+ QString tmpDirName;
+};
+
+Q_DECLARE_METATYPE(tst_qfile::BenchmarkType)
+Q_DECLARE_METATYPE(QIODevice::OpenMode)
+Q_DECLARE_METATYPE(QIODevice::OpenModeFlag)
+
+void tst_qfile::createFile()
+{
+ removeFile(); // Cleanup in case previous test case aborted before cleaning up
+
+ QTemporaryFile tmpFile;
+ tmpFile.setAutoRemove(false);
+ if (!tmpFile.open())
+ ::exit(1);
+ filename = tmpFile.fileName();
+ tmpFile.close();
+}
+
+void tst_qfile::removeFile()
+{
+ if (!filename.isEmpty())
+ QFile::remove(filename);
+}
+
+void tst_qfile::fillFile(int factor)
+{
+ QFile tmpFile(filename);
+ tmpFile.open(QIODevice::WriteOnly);
+ //for (int row=0; row<factor; ++row) {
+ // tmpFile.write(QByteArray().fill('0'+row%('0'-'z'), 80));
+ // tmpFile.write("\n");
+ //}
+ tmpFile.seek(factor*80);
+ tmpFile.putChar('\n');
+ tmpFile.close();
+ // let IO settle
+ QTest::qSleep(2000);
+}
+
+void tst_qfile::initTestCase()
+{
+}
+
+void tst_qfile::cleanupTestCase()
+{
+}
+
+void tst_qfile::readBigFile_QFile() { readBigFile(); }
+void tst_qfile::readBigFile_QFSFileEngine() { readBigFile(); }
+void tst_qfile::readBigFile_posix()
+{
+ readBigFile();
+}
+void tst_qfile::readBigFile_Win32() { readBigFile(); }
+
+void tst_qfile::readBigFile_QFile_data()
+{
+ readBigFile_data(QFileBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+ readBigFile_data(QFileBenchmark, QIODevice::NotOpen, QIODevice::Unbuffered);
+ readBigFile_data(QFileBenchmark, QIODevice::Text, QIODevice::NotOpen);
+ readBigFile_data(QFileBenchmark, QIODevice::Text, QIODevice::Unbuffered);
+
+}
+
+void tst_qfile::readBigFile_QFSFileEngine_data()
+{
+ readBigFile_data(QFSFileEngineBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+ readBigFile_data(QFSFileEngineBenchmark, QIODevice::NotOpen, QIODevice::Unbuffered);
+ readBigFile_data(QFSFileEngineBenchmark, QIODevice::Text, QIODevice::NotOpen);
+ readBigFile_data(QFSFileEngineBenchmark, QIODevice::Text, QIODevice::Unbuffered);
+}
+
+void tst_qfile::readBigFile_posix_data()
+{
+ readBigFile_data(PosixBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+}
+
+void tst_qfile::readBigFile_Win32_data()
+{
+ readBigFile_data(Win32Benchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+}
+
+
+void tst_qfile::readBigFile_data(BenchmarkType type, QIODevice::OpenModeFlag t, QIODevice::OpenModeFlag b)
+{
+ QTest::addColumn<tst_qfile::BenchmarkType>("testType");
+ QTest::addColumn<int>("blockSize");
+ QTest::addColumn<QFile::OpenModeFlag>("textMode");
+ QTest::addColumn<QFile::OpenModeFlag>("bufferedMode");
+
+ const int bs[] = {1024, 1024*2, 1024*8, 1024*16, 1024*32,1024*512};
+ int bs_entries = sizeof(bs)/sizeof(const int);
+
+ QString flagstring;
+ if (t & QIODevice::Text) flagstring += "textMode ";
+ if (b & QIODevice::Unbuffered) flagstring += "unbuffered ";
+ if (flagstring.isEmpty()) flagstring = "none";
+
+ for (int i=0; i<bs_entries; ++i)
+ QTest::newRow((QString("BS: %1, Flags: %2" )).arg(bs[i]).arg(flagstring).toLatin1().constData()) << type << bs[i] << t << b;
+}
+
+void tst_qfile::readBigFile()
+{
+ QFETCH(tst_qfile::BenchmarkType, testType);
+ QFETCH(int, blockSize);
+ QFETCH(QFile::OpenModeFlag, textMode);
+ QFETCH(QFile::OpenModeFlag, bufferedMode);
+
+#ifndef Q_OS_WIN
+ if (testType == Win32Benchmark)
+ QSKIP("This is Windows only benchmark.", SkipSingle);
+#endif
+
+ char *buffer = new char[BUFSIZE];
+ createFile();
+ fillFile();
+
+ switch (testType) {
+ case(QFileBenchmark): {
+ QFile file(filename);
+ file.open(QIODevice::ReadOnly|textMode|bufferedMode);
+ QBENCHMARK {
+ while(!file.atEnd())
+ file.read(blockSize);
+ file.reset();
+ }
+ file.close();
+ }
+ break;
+ case(QFSFileEngineBenchmark): {
+ QFSFileEngine fse(filename);
+ fse.open(QIODevice::ReadOnly|textMode|bufferedMode);
+ QBENCHMARK {
+ //qWarning() << fse.supportsExtension(QAbstractFileEngine::AtEndExtension);
+ while(fse.read(buffer, blockSize));
+ fse.seek(0);
+ }
+ fse.close();
+ }
+ break;
+ case(PosixBenchmark): {
+ QByteArray data = filename.toLocal8Bit();
+ const char* cfilename = data.constData();
+ FILE* cfile = ::fopen(cfilename, "rb");
+ QBENCHMARK {
+ while(!feof(cfile))
+ ::fread(buffer, blockSize, 1, cfile);
+ ::fseek(cfile, 0, SEEK_SET);
+ }
+ ::fclose(cfile);
+ }
+ break;
+ case(QFileFromPosixBenchmark): {
+ // No gain in benchmarking this case
+ }
+ break;
+ case(Win32Benchmark): {
+#ifdef Q_OS_WIN
+ HANDLE hndl;
+
+ // ensure we don't account string conversion
+ wchar_t* cfilename = (wchar_t*)filename.utf16();
+
+ hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
+ Q_ASSERT(hndl);
+ wchar_t* nativeBuffer = new wchar_t[BUFSIZE];
+ DWORD numberOfBytesRead;
+
+ QBENCHMARK {
+ do {
+ ReadFile(hndl, nativeBuffer, blockSize, &numberOfBytesRead, NULL);
+ } while(numberOfBytesRead != 0);
+ SetFilePointer(hndl, 0, NULL, FILE_BEGIN);
+ }
+ delete[] nativeBuffer;
+ CloseHandle(hndl);
+#else
+ QFAIL("Not running on a non-Windows platform!");
+#endif
+ }
+ break;
+ }
+
+ removeFile();
+ delete[] buffer;
+}
+
+void tst_qfile::seek_data()
+{
+ QTest::addColumn<tst_qfile::BenchmarkType>("testType");
+ QTest::newRow("QFile") << QFileBenchmark;
+ QTest::newRow("QFSFileEngine") << QFSFileEngineBenchmark;
+ QTest::newRow("Posix FILE*") << PosixBenchmark;
+#ifdef Q_OS_WIN
+ QTest::newRow("Win32 API") << Win32Benchmark;
+#endif
+}
+
+void tst_qfile::seek()
+{
+ QFETCH(tst_qfile::BenchmarkType, testType);
+ int i = 0;
+
+ createFile();
+ fillFile();
+
+ switch (testType) {
+ case(QFileBenchmark): {
+ QFile file(filename);
+ file.open(QIODevice::ReadOnly);
+ QBENCHMARK {
+ i=(i+1)%sp_size;
+ file.seek(seekpos[i]);
+ }
+ file.close();
+ }
+ break;
+ case(QFSFileEngineBenchmark): {
+ QFSFileEngine fse(filename);
+ fse.open(QIODevice::ReadOnly);
+ QBENCHMARK {
+ i=(i+1)%sp_size;
+ fse.seek(seekpos[i]);
+ }
+ fse.close();
+ }
+ break;
+ case(PosixBenchmark): {
+ QByteArray data = filename.toLocal8Bit();
+ const char* cfilename = data.constData();
+ FILE* cfile = ::fopen(cfilename, "rb");
+ QBENCHMARK {
+ i=(i+1)%sp_size;
+ ::fseek(cfile, seekpos[i], SEEK_SET);
+ }
+ ::fclose(cfile);
+ }
+ break;
+ case(QFileFromPosixBenchmark): {
+ // No gain in benchmarking this case
+ }
+ break;
+ case(Win32Benchmark): {
+#ifdef Q_OS_WIN
+ HANDLE hndl;
+
+ // ensure we don't account string conversion
+ wchar_t* cfilename = (wchar_t*)filename.utf16();
+
+ hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
+ Q_ASSERT(hndl);
+ QBENCHMARK {
+ i=(i+1)%sp_size;
+ SetFilePointer(hndl, seekpos[i], NULL, 0);
+ }
+ CloseHandle(hndl);
+#else
+ QFAIL("Not running on a Windows plattform!");
+#endif
+ }
+ break;
+ }
+
+ removeFile();
+}
+
+void tst_qfile::open_data()
+{
+ QTest::addColumn<tst_qfile::BenchmarkType>("testType");
+ QTest::newRow("QFile") << QFileBenchmark;
+ QTest::newRow("QFSFileEngine") << QFSFileEngineBenchmark;
+ QTest::newRow("Posix FILE*") << PosixBenchmark;
+ QTest::newRow("QFile from FILE*") << QFileFromPosixBenchmark;
+#ifdef Q_OS_WIN
+ QTest::newRow("Win32 API") << Win32Benchmark;
+#endif
+}
+
+void tst_qfile::open()
+{
+ QFETCH(tst_qfile::BenchmarkType, testType);
+
+ createFile();
+
+ switch (testType) {
+ case(QFileBenchmark): {
+ QBENCHMARK {
+ QFile file( filename );
+ file.open( QIODevice::ReadOnly );
+ file.close();
+ }
+ }
+ break;
+ case(QFSFileEngineBenchmark): {
+ QBENCHMARK {
+ QFSFileEngine fse(filename);
+ fse.open(QIODevice::ReadOnly);
+ fse.close();
+ }
+ }
+ break;
+
+ case(PosixBenchmark): {
+ // ensure we don't account toLocal8Bit()
+ QByteArray data = filename.toLocal8Bit();
+ const char* cfilename = data.constData();
+
+ QBENCHMARK {
+ FILE* cfile = ::fopen(cfilename, "rb");
+ ::fclose(cfile);
+ }
+ }
+ break;
+ case(QFileFromPosixBenchmark): {
+ // ensure we don't account toLocal8Bit()
+ QByteArray data = filename.toLocal8Bit();
+ const char* cfilename = data.constData();
+ FILE* cfile = ::fopen(cfilename, "rb");
+
+ QBENCHMARK {
+ QFile file;
+ file.open(cfile, QIODevice::ReadOnly);
+ file.close();
+ }
+ ::fclose(cfile);
+ }
+ break;
+ case(Win32Benchmark): {
+#ifdef Q_OS_WIN
+ HANDLE hndl;
+
+ // ensure we don't account string conversion
+ wchar_t* cfilename = (wchar_t*)filename.utf16();
+
+ QBENCHMARK {
+ hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
+ Q_ASSERT(hndl);
+ CloseHandle(hndl);
+ }
+#else
+ QFAIL("Not running on a non-Windows platform!");
+#endif
+ }
+ break;
+ }
+
+ removeFile();
+}
+
+
+void tst_qfile::readSmallFiles_QFile() { readSmallFiles(); }
+void tst_qfile::readSmallFiles_QFSFileEngine() { readSmallFiles(); }
+void tst_qfile::readSmallFiles_posix()
+{
+ readSmallFiles();
+}
+void tst_qfile::readSmallFiles_Win32()
+{
+ readSmallFiles();
+}
+
+void tst_qfile::readSmallFiles_QFile_data()
+{
+ readSmallFiles_data(QFileBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+ readSmallFiles_data(QFileBenchmark, QIODevice::NotOpen, QIODevice::Unbuffered);
+ readSmallFiles_data(QFileBenchmark, QIODevice::Text, QIODevice::NotOpen);
+ readSmallFiles_data(QFileBenchmark, QIODevice::Text, QIODevice::Unbuffered);
+
+}
+
+void tst_qfile::readSmallFiles_QFSFileEngine_data()
+{
+ readSmallFiles_data(QFSFileEngineBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+ readSmallFiles_data(QFSFileEngineBenchmark, QIODevice::NotOpen, QIODevice::Unbuffered);
+ readSmallFiles_data(QFSFileEngineBenchmark, QIODevice::Text, QIODevice::NotOpen);
+ readSmallFiles_data(QFSFileEngineBenchmark, QIODevice::Text, QIODevice::Unbuffered);
+}
+
+void tst_qfile::readSmallFiles_posix_data()
+{
+ readSmallFiles_data(PosixBenchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+}
+
+void tst_qfile::readSmallFiles_Win32_data()
+{
+ readSmallFiles_data(Win32Benchmark, QIODevice::NotOpen, QIODevice::NotOpen);
+}
+
+
+void tst_qfile::readSmallFiles_data(BenchmarkType type, QIODevice::OpenModeFlag t, QIODevice::OpenModeFlag b)
+{
+ QTest::addColumn<tst_qfile::BenchmarkType>("testType");
+ QTest::addColumn<int>("blockSize");
+ QTest::addColumn<QFile::OpenModeFlag>("textMode");
+ QTest::addColumn<QFile::OpenModeFlag>("bufferedMode");
+
+ const int bs[] = {1024, 1024*2, 1024*8, 1024*16, 1024*32,1024*512};
+ int bs_entries = sizeof(bs)/sizeof(const int);
+
+ QString flagstring;
+ if (t & QIODevice::Text) flagstring += "textMode ";
+ if (b & QIODevice::Unbuffered) flagstring += "unbuffered ";
+ if (flagstring.isEmpty()) flagstring = "none";
+
+ for (int i=0; i<bs_entries; ++i)
+ QTest::newRow((QString("BS: %1, Flags: %2" )).arg(bs[i]).arg(flagstring).toLatin1().constData()) << type << bs[i] << t << b;
+
+}
+
+void tst_qfile::createSmallFiles()
+{
+ QDir dir = QDir::temp();
+ dir.mkdir("tst");
+ dir.cd("tst");
+ tmpDirName = dir.absolutePath();
+
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_WINCE)
+ for (int i = 0; i < 100; ++i)
+#else
+ for (int i = 0; i < 1000; ++i)
+#endif
+ {
+ QFile f(tmpDirName+"/"+QString::number(i));
+ f.open(QIODevice::WriteOnly);
+ f.seek(511);
+ f.putChar('\n');
+ f.close();
+ }
+}
+
+void tst_qfile::removeSmallFiles()
+{
+ QDirIterator it(tmpDirName, QDirIterator::FollowSymlinks);
+ while (it.hasNext())
+ QFile::remove(it.next());
+ QDir::temp().rmdir("tst");
+}
+
+
+void tst_qfile::readSmallFiles()
+{
+ QFETCH(tst_qfile::BenchmarkType, testType);
+ QFETCH(int, blockSize);
+ QFETCH(QFile::OpenModeFlag, textMode);
+ QFETCH(QFile::OpenModeFlag, bufferedMode);
+
+#ifndef Q_OS_WIN
+ if (testType == Win32Benchmark)
+ QSKIP("This is Windows only benchmark.", SkipSingle);
+#endif
+
+ createSmallFiles();
+
+ QDir dir(tmpDirName);
+ const QStringList files = dir.entryList(QDir::NoDotAndDotDot|QDir::NoSymLinks|QDir::Files);
+ char *buffer = new char[BUFSIZE];
+
+ switch (testType) {
+ case(QFileBenchmark): {
+ QList<QFile*> fileList;
+ Q_FOREACH(QString file, files) {
+ QFile *f = new QFile(tmpDirName+ "/" + file);
+ f->open(QIODevice::ReadOnly|textMode|bufferedMode);
+ fileList.append(f);
+ }
+
+ QBENCHMARK {
+ Q_FOREACH(QFile *file, fileList) {
+ while (!file->atEnd()) {
+ file->read(buffer, blockSize);
+ }
+ }
+ }
+
+ Q_FOREACH(QFile *file, fileList) {
+ file->close();
+ delete file;
+ }
+ }
+ break;
+ case(QFSFileEngineBenchmark): {
+ QList<QFSFileEngine*> fileList;
+ Q_FOREACH(QString file, files) {
+ QFSFileEngine *fse = new QFSFileEngine(tmpDirName+ "/" + file);
+ fse->open(QIODevice::ReadOnly|textMode|bufferedMode);
+ fileList.append(fse);
+ }
+
+ QBENCHMARK {
+ Q_FOREACH(QFSFileEngine *fse, fileList) {
+ while (fse->read(buffer, blockSize));
+ }
+ }
+
+ Q_FOREACH(QFSFileEngine *fse, fileList) {
+ fse->close();
+ delete fse;
+ }
+ }
+ break;
+ case(PosixBenchmark): {
+ QList<FILE*> fileList;
+ Q_FOREACH(QString file, files) {
+ fileList.append(::fopen(QFile::encodeName(tmpDirName+ "/" + file).constData(), "rb"));
+ }
+
+ QBENCHMARK {
+ Q_FOREACH(FILE* cfile, fileList) {
+ while(!feof(cfile))
+ ::fread(buffer, blockSize, 1, cfile);
+ ::fseek(cfile, 0, SEEK_SET);
+ }
+ }
+
+ Q_FOREACH(FILE* cfile, fileList) {
+ ::fclose(cfile);
+ }
+ }
+ break;
+ case(QFileFromPosixBenchmark): {
+ // No gain in benchmarking this case
+ }
+ break;
+ case(Win32Benchmark): {
+#ifdef Q_OS_WIN
+ HANDLE hndl;
+
+ // ensure we don't account string conversion
+ wchar_t* cfilename = (wchar_t*)filename.utf16();
+
+ hndl = CreateFile(cfilename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
+ Q_ASSERT(hndl);
+ wchar_t* nativeBuffer = new wchar_t[BUFSIZE];
+ DWORD numberOfBytesRead;
+ QBENCHMARK {
+ do {
+ ReadFile(hndl, nativeBuffer, blockSize, &numberOfBytesRead, NULL);
+ } while(numberOfBytesRead != 0);
+ }
+ delete nativeBuffer;
+ CloseHandle(hndl);
+#else
+ QFAIL("Not running on a non-Windows platform!");
+#endif
+ }
+ break;
+ }
+
+ removeSmallFiles();
+ delete[] buffer;
+}
+
+QTEST_MAIN(tst_qfile)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qfile/qfile.pro b/tests/benchmarks/corelib/io/qfile/qfile.pro
new file mode 100644
index 0000000000..8663cab24b
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qfile/qfile.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qfile
+QT -= gui
+win32: DEFINES+= _CRT_SECURE_NO_WARNINGS
+
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/io/qfileinfo/main.cpp b/tests/benchmarks/corelib/io/qfileinfo/main.cpp
new file mode 100644
index 0000000000..3274adee8f
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qfileinfo/main.cpp
@@ -0,0 +1,125 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDebug>
+#include <qtest.h>
+#include <QtTest/QtTest>
+#include <QtCore/QCoreApplication>
+#include <QtCore/QFileInfo>
+#include <QtCore/QFile>
+
+#include "private/qfsfileengine_p.h"
+#include "../../../../shared/filesystem.h"
+
+class qfileinfo : public QObject
+{
+ Q_OBJECT
+private slots:
+ void canonicalFileNamePerformance();
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
+ void symLinkTargetPerformanceLNK();
+ void symLinkTargetPerformanceMounpoint();
+#endif
+ void initTestCase();
+ void cleanupTestCase();
+public:
+ qfileinfo() : QObject() {};
+};
+
+void qfileinfo::initTestCase()
+{
+}
+
+void qfileinfo::cleanupTestCase()
+{
+}
+
+void qfileinfo::canonicalFileNamePerformance()
+{
+ QString appPath = QCoreApplication::applicationFilePath();
+ QFSFileEnginePrivate::canonicalized(appPath); // warmup
+ QFSFileEnginePrivate::canonicalized(appPath); // more warmup
+ QBENCHMARK {
+ for (int i = 0; i < 5000; i++) {
+ QFSFileEnginePrivate::canonicalized(appPath);
+ }
+ }
+}
+
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
+void qfileinfo::symLinkTargetPerformanceLNK()
+{
+ QVERIFY(QFile::link("file","link.lnk"));
+ QFileInfo info("link.lnk");
+ info.setCaching(false);
+ QVERIFY(info.isSymLink());
+ QString linkTarget;
+ QBENCHMARK {
+ for(int i=0; i<100; i++)
+ linkTarget = info.readLink();
+ }
+ QVERIFY(QFile::remove("link.lnk"));
+}
+
+void qfileinfo::symLinkTargetPerformanceMounpoint()
+{
+ wchar_t buffer[MAX_PATH];
+ QString rootPath = QDir::toNativeSeparators(QDir::rootPath());
+ QVERIFY(GetVolumeNameForVolumeMountPointW(rootPath.utf16(), buffer, MAX_PATH));
+ QString rootVolume = QString::fromWCharArray(buffer);
+ QString mountpoint = "mountpoint";
+ rootVolume.replace("\\\\?\\","\\??\\");
+ FileSystem::createNtfsJunction(rootVolume, mountpoint);
+
+ QFileInfo info(mountpoint);
+ info.setCaching(false);
+ QVERIFY(info.isSymLink());
+ QString linkTarget;
+ QBENCHMARK {
+ for(int i=0; i<100; i++)
+ linkTarget = info.readLink();
+ }
+ QVERIFY(QDir().rmdir(mountpoint));
+}
+#endif
+
+QTEST_MAIN(qfileinfo)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro b/tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro
new file mode 100644
index 0000000000..3edf6a65c8
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qfileinfo/qfileinfo.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qfileinfo
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/io/qiodevice/main.cpp b/tests/benchmarks/corelib/io/qiodevice/main.cpp
new file mode 100644
index 0000000000..6f16794b10
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qiodevice/main.cpp
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDebug>
+#include <QIODevice>
+#include <QFile>
+#include <QString>
+
+#include <qtest.h>
+
+
+class tst_qiodevice : public QObject
+{
+ Q_OBJECT
+private slots:
+ void read_old();
+ void read_old_data() { read_data(); }
+ //void read_new();
+ //void read_new_data() { read_data(); }
+private:
+ void read_data();
+};
+
+
+void tst_qiodevice::read_data()
+{
+ QTest::addColumn<qint64>("size");
+ QTest::newRow("10k") << qint64(10 * 1024);
+ QTest::newRow("100k") << qint64(100 * 1024);
+ QTest::newRow("1000k") << qint64(1000 * 1024);
+ QTest::newRow("10000k") << qint64(10000 * 1024);
+#ifndef Q_OS_SYMBIAN // Symbian devices don't (yet) have enough available RAM to run these
+ QTest::newRow("100000k") << qint64(100000 * 1024);
+ QTest::newRow("1000000k") << qint64(1000000 * 1024);
+#endif
+}
+
+void tst_qiodevice::read_old()
+{
+ QFETCH(qint64, size);
+
+ QString name = "tmp" + QString::number(size);
+
+ {
+ QFile file(name);
+ file.open(QIODevice::WriteOnly);
+ file.seek(size);
+ file.write("x", 1);
+ file.close();
+ }
+
+ QBENCHMARK {
+ QFile file(name);
+ file.open(QIODevice::ReadOnly);
+ QByteArray ba;
+ qint64 s = size - 1024;
+ file.seek(512);
+ ba = file.read(s); // crash happens during this read / assignment operation
+ }
+
+ {
+ QFile file(name);
+ file.remove();
+ }
+}
+
+
+QTEST_MAIN(tst_qiodevice)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qiodevice/qiodevice.pro b/tests/benchmarks/corelib/io/qiodevice/qiodevice.pro
new file mode 100755
index 0000000000..2e0f6a172c
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qiodevice/qiodevice.pro
@@ -0,0 +1,13 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qiodevice
+TARGET.EPOCHEAPSIZE = 0x100000 0x2000000
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/io/qtemporaryfile/main.cpp b/tests/benchmarks/corelib/io/qtemporaryfile/main.cpp
new file mode 100644
index 0000000000..667714272a
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qtemporaryfile/main.cpp
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDebug>
+#include <QIODevice>
+#include <QFile>
+#include <QString>
+#include <QTemporaryFile>
+#include <qtest.h>
+
+
+class tst_qtemporaryfile : public QObject
+{
+ Q_OBJECT
+private slots:
+ void openclose_data();
+ void openclose();
+ void readwrite_data() { openclose_data(); }
+ void readwrite();
+
+private:
+};
+
+void tst_qtemporaryfile::openclose_data()
+{
+ QTest::addColumn<qint64>("amount");
+ QTest::newRow("100") << qint64(100);
+ QTest::newRow("1000") << qint64(1000);
+ QTest::newRow("10000") << qint64(10000);
+}
+
+void tst_qtemporaryfile::openclose()
+{
+ QFETCH(qint64, amount);
+
+ QBENCHMARK {
+ for (qint64 i = 0; i < amount; ++i) {
+ QTemporaryFile file;
+ file.open();
+ file.close();
+ }
+ }
+}
+
+void tst_qtemporaryfile::readwrite()
+{
+ QFETCH(qint64, amount);
+
+ const int dataSize = 4096;
+ QByteArray data;
+ data.fill('a', dataSize);
+ QBENCHMARK {
+ for (qint64 i = 0; i < amount; ++i) {
+ QTemporaryFile file;
+ file.open();
+ file.write(data);
+ file.seek(0);
+ file.read(dataSize);
+ file.close();
+ }
+ }
+}
+
+QTEST_MAIN(tst_qtemporaryfile)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro b/tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro
new file mode 100644
index 0000000000..74fd534ec2
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qtemporaryfile/qtemporaryfile.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qtemporaryfile
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/io/qurl/main.cpp b/tests/benchmarks/corelib/io/qurl/main.cpp
new file mode 100644
index 0000000000..385a20931c
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qurl/main.cpp
@@ -0,0 +1,244 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qurl.h>
+#include <qtest.h>
+
+class tst_qurl: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void emptyUrl();
+ void relativeUrl();
+ void absoluteUrl();
+ void isRelative_data();
+ void isRelative();
+ void toLocalFile_data();
+ void toLocalFile();
+ void toString_data();
+ void toString();
+ void toEncoded_data();
+ void toEncoded();
+ void resolved_data();
+ void resolved();
+ void equality_data();
+ void equality();
+ void qmlPropertyWriteUseCase();
+
+private:
+ void generateFirstRunData();
+};
+
+void tst_qurl::emptyUrl()
+{
+ QBENCHMARK {
+ QUrl url;
+ }
+}
+
+void tst_qurl::relativeUrl()
+{
+ QBENCHMARK {
+ QUrl url("pics/avatar.png");
+ }
+}
+
+void tst_qurl::absoluteUrl()
+{
+ QBENCHMARK {
+ QUrl url("/tmp/avatar.png");
+ }
+}
+
+void tst_qurl::generateFirstRunData()
+{
+ QTest::addColumn<bool>("firstRun");
+
+ QTest::newRow("construction + first run") << true;
+ QTest::newRow("subsequent runs") << false;
+}
+
+void tst_qurl::isRelative_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::isRelative()
+{
+ QFETCH(bool, firstRun);
+ if (firstRun) {
+ QBENCHMARK {
+ QUrl url("pics/avatar.png");
+ url.isRelative();
+ }
+ } else {
+ QUrl url("pics/avatar.png");
+ QBENCHMARK {
+ url.isRelative();
+ }
+ }
+}
+
+void tst_qurl::toLocalFile_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::toLocalFile()
+{
+ QFETCH(bool, firstRun);
+ if (firstRun) {
+ QBENCHMARK {
+ QUrl url("/tmp/avatar.png");
+ url.toLocalFile();
+ }
+ } else {
+ QUrl url("/tmp/avatar.png");
+ QBENCHMARK {
+ url.toLocalFile();
+ }
+ }
+}
+
+void tst_qurl::toString_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::toString()
+{
+ QFETCH(bool, firstRun);
+ if(firstRun) {
+ QBENCHMARK {
+ QUrl url("pics/avatar.png");
+ url.toString();
+ }
+ } else {
+ QUrl url("pics/avatar.png");
+ QBENCHMARK {
+ url.toString();
+ }
+ }
+}
+
+void tst_qurl::toEncoded_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::toEncoded()
+{
+ QFETCH(bool, firstRun);
+ if(firstRun) {
+ QBENCHMARK {
+ QUrl url("pics/avatar.png");
+ url.toEncoded(QUrl::FormattingOption(0x100));
+ }
+ } else {
+ QUrl url("pics/avatar.png");
+ QBENCHMARK {
+ url.toEncoded(QUrl::FormattingOption(0x100));
+ }
+ }
+}
+
+void tst_qurl::resolved_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::resolved()
+{
+ QFETCH(bool, firstRun);
+ if(firstRun) {
+ QBENCHMARK {
+ QUrl baseUrl("/home/user/");
+ QUrl url("pics/avatar.png");
+ baseUrl.resolved(url);
+ }
+ } else {
+ QUrl baseUrl("/home/user/");
+ QUrl url("pics/avatar.png");
+ QBENCHMARK {
+ baseUrl.resolved(url);
+ }
+ }
+}
+
+void tst_qurl::equality_data()
+{
+ generateFirstRunData();
+}
+
+void tst_qurl::equality()
+{
+ QFETCH(bool, firstRun);
+ if(firstRun) {
+ QBENCHMARK {
+ QUrl url("pics/avatar.png");
+ QUrl url2("pics/avatar2.png");
+ //url == url2;
+ }
+ } else {
+ QUrl url("pics/avatar.png");
+ QUrl url2("pics/avatar2.png");
+ QBENCHMARK {
+ url == url2;
+ }
+ }
+}
+
+void tst_qurl::qmlPropertyWriteUseCase()
+{
+ QUrl base("file:///home/user/qt/demos/declarative/samegame/SamegameCore/");
+ QString str("pics/redStar.png");
+
+ QBENCHMARK {
+ QUrl u = QUrl(str);
+ if (!u.isEmpty() && u.isRelative())
+ u = base.resolved(u);
+ }
+}
+
+QTEST_MAIN(tst_qurl)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/io/qurl/qurl.pro b/tests/benchmarks/corelib/io/qurl/qurl.pro
new file mode 100644
index 0000000000..1d2d35e707
--- /dev/null
+++ b/tests/benchmarks/corelib/io/qurl/qurl.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_qurl
+QT -= gui
+win32: DEFINES+= _CRT_SECURE_NO_WARNINGS
+
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/kernel/events/events.pro b/tests/benchmarks/corelib/kernel/events/events.pro
new file mode 100644
index 0000000000..d7d770a944
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/events/events.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_events
+DEPENDPATH += .
+INCLUDEPATH += .
+# Input
+SOURCES += main.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/kernel/events/main.cpp b/tests/benchmarks/corelib/kernel/events/main.cpp
new file mode 100644
index 0000000000..94dd4b02db
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/events/main.cpp
@@ -0,0 +1,187 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+
+#include <qtest.h>
+#include <qtesteventloop.h>
+
+class PingPong : public QObject
+{
+public:
+ void setPeer(QObject *peer);
+ void resetCounter() {m_counter = 100;}
+
+protected:
+ bool event(QEvent *e);
+
+private:
+ QObject *m_peer;
+ int m_counter;
+};
+
+void PingPong::setPeer(QObject *peer)
+{
+ m_peer = peer;
+ m_counter = 100;
+}
+
+bool PingPong::event(QEvent *)
+{
+ --m_counter;
+ if (m_counter > 0) {
+ QEvent *e = new QEvent(QEvent::User);
+ QCoreApplication::postEvent(m_peer, e);
+ } else {
+ QTestEventLoop::instance().exitLoop();
+ }
+ return true;
+}
+
+class EventTester : public QObject
+{
+public:
+ int foo(int bar);
+
+protected:
+ bool event(QEvent *e);
+};
+
+bool EventTester::event(QEvent *e)
+{
+ if (e->type() == QEvent::User+1)
+ return foo(e->type()) != 0;
+ return false;
+}
+
+int EventTester::foo(int bar)
+{
+ return bar + 1;
+}
+
+class EventsBench : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+
+ void noEvent();
+ void sendEvent_data();
+ void sendEvent();
+ void postEvent_data();
+ void postEvent();
+};
+
+void EventsBench::initTestCase()
+{
+}
+
+void EventsBench::cleanupTestCase()
+{
+}
+
+void EventsBench::noEvent()
+{
+ EventTester tst;
+ int val = 0;
+ QBENCHMARK {
+ val += tst.foo(1);
+ }
+}
+
+void EventsBench::sendEvent_data()
+{
+ QTest::addColumn<bool>("filterEvents");
+ QTest::newRow("no eventfilter") << false;
+ QTest::newRow("eventfilter") << true;
+}
+
+void EventsBench::sendEvent()
+{
+ QFETCH(bool, filterEvents);
+ EventTester tst;
+ if (filterEvents)
+ tst.installEventFilter(this);
+ QEvent evt(QEvent::Type(QEvent::User+1));
+ QBENCHMARK {
+ QCoreApplication::sendEvent(&tst, &evt);
+ }
+}
+
+void EventsBench::postEvent_data()
+{
+ QTest::addColumn<bool>("filterEvents");
+ // The first time an eventloop is executed, the case runs radically slower at least
+ // on some platforms, so test the "no eventfilter" case to get a comparable results
+ // with the "eventfilter" case.
+ QTest::newRow("first time, no eventfilter") << false;
+ QTest::newRow("no eventfilter") << false;
+ QTest::newRow("eventfilter") << true;
+}
+
+void EventsBench::postEvent()
+{
+ QFETCH(bool, filterEvents);
+ PingPong ping;
+ PingPong pong;
+ ping.setPeer(&pong);
+ pong.setPeer(&ping);
+ if (filterEvents) {
+ ping.installEventFilter(this);
+ pong.installEventFilter(this);
+ }
+
+ QBENCHMARK {
+ // In case multiple iterations are done, event needs to be created inside the QBENCHMARK,
+ // or it gets deleted once first iteration exits and can cause a crash. Similarly,
+ // ping and pong need their counters reset.
+ QEvent *e = new QEvent(QEvent::User);
+ ping.resetCounter();
+ pong.resetCounter();
+ QCoreApplication::postEvent(&ping, e);
+ QTestEventLoop::instance().enterLoop( 61 );
+ }
+}
+
+QTEST_MAIN(EventsBench)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/kernel/kernel.pro b/tests/benchmarks/corelib/kernel/kernel.pro
new file mode 100644
index 0000000000..da3f0d609f
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/kernel.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ events \
+ qmetaobject \
+ qmetatype \
+ qobject \
+ qvariant
diff --git a/tests/benchmarks/corelib/kernel/qmetaobject/main.cpp b/tests/benchmarks/corelib/kernel/qmetaobject/main.cpp
new file mode 100644
index 0000000000..257915e28d
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qmetaobject/main.cpp
@@ -0,0 +1,264 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+#include <QtGui>
+#include <qtest.h>
+
+class LotsOfSignals : public QObject
+{
+ Q_OBJECT
+public:
+ LotsOfSignals() {}
+
+signals:
+ void extraSignal1();
+ void extraSignal2();
+ void extraSignal3();
+ void extraSignal4();
+ void extraSignal5();
+ void extraSignal6();
+ void extraSignal7();
+ void extraSignal8();
+ void extraSignal9();
+ void extraSignal10();
+ void extraSignal12();
+ void extraSignal13();
+ void extraSignal14();
+ void extraSignal15();
+ void extraSignal16();
+ void extraSignal17();
+ void extraSignal18();
+ void extraSignal19();
+ void extraSignal20();
+ void extraSignal21();
+ void extraSignal22();
+ void extraSignal23();
+ void extraSignal24();
+ void extraSignal25();
+ void extraSignal26();
+ void extraSignal27();
+ void extraSignal28();
+ void extraSignal29();
+ void extraSignal30();
+ void extraSignal31();
+ void extraSignal32();
+ void extraSignal33();
+ void extraSignal34();
+ void extraSignal35();
+ void extraSignal36();
+ void extraSignal37();
+ void extraSignal38();
+ void extraSignal39();
+ void extraSignal40();
+ void extraSignal41();
+ void extraSignal42();
+ void extraSignal43();
+ void extraSignal44();
+ void extraSignal45();
+ void extraSignal46();
+ void extraSignal47();
+ void extraSignal48();
+ void extraSignal49();
+ void extraSignal50();
+ void extraSignal51();
+ void extraSignal52();
+ void extraSignal53();
+ void extraSignal54();
+ void extraSignal55();
+ void extraSignal56();
+ void extraSignal57();
+ void extraSignal58();
+ void extraSignal59();
+ void extraSignal60();
+ void extraSignal61();
+ void extraSignal62();
+ void extraSignal63();
+ void extraSignal64();
+ void extraSignal65();
+ void extraSignal66();
+ void extraSignal67();
+ void extraSignal68();
+ void extraSignal69();
+ void extraSignal70();
+};
+
+class tst_qmetaobject: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+
+ void indexOfProperty_data();
+ void indexOfProperty();
+ void indexOfMethod_data();
+ void indexOfMethod();
+ void indexOfSignal_data();
+ void indexOfSignal();
+ void indexOfSlot_data();
+ void indexOfSlot();
+
+ void unconnected_data();
+ void unconnected();
+};
+
+void tst_qmetaobject::initTestCase()
+{
+}
+
+void tst_qmetaobject::cleanupTestCase()
+{
+}
+
+void tst_qmetaobject::indexOfProperty_data()
+{
+ QTest::addColumn<QByteArray>("name");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->propertyCount(); ++i) {
+ QMetaProperty prop = mo->property(i);
+ QTest::newRow(prop.name()) << QByteArray(prop.name());
+ }
+}
+
+void tst_qmetaobject::indexOfProperty()
+{
+ QFETCH(QByteArray, name);
+ const char *p = name.constData();
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ QBENCHMARK {
+ (void)mo->indexOfProperty(p);
+ }
+}
+
+void tst_qmetaobject::indexOfMethod_data()
+{
+ QTest::addColumn<QByteArray>("method");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ QByteArray sig = method.signature();
+ QTest::newRow(sig) << sig;
+ }
+}
+
+void tst_qmetaobject::indexOfMethod()
+{
+ QFETCH(QByteArray, method);
+ const char *p = method.constData();
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ QBENCHMARK {
+ (void)mo->indexOfMethod(p);
+ }
+}
+
+void tst_qmetaobject::indexOfSignal_data()
+{
+ QTest::addColumn<QByteArray>("signal");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ if (method.methodType() != QMetaMethod::Signal)
+ continue;
+ QByteArray sig = method.signature();
+ QTest::newRow(sig) << sig;
+ }
+}
+
+void tst_qmetaobject::indexOfSignal()
+{
+ QFETCH(QByteArray, signal);
+ const char *p = signal.constData();
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ QBENCHMARK {
+ (void)mo->indexOfSignal(p);
+ }
+}
+
+void tst_qmetaobject::indexOfSlot_data()
+{
+ QTest::addColumn<QByteArray>("slot");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ if (method.methodType() != QMetaMethod::Slot)
+ continue;
+ QByteArray sig = method.signature();
+ QTest::newRow(sig) << sig;
+ }
+}
+
+void tst_qmetaobject::indexOfSlot()
+{
+ QFETCH(QByteArray, slot);
+ const char *p = slot.constData();
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ QBENCHMARK {
+ (void)mo->indexOfSlot(p);
+ }
+}
+
+void tst_qmetaobject::unconnected_data()
+{
+ QTest::addColumn<int>("signal_index");
+ QTest::newRow("signal--9") << 9;
+ QTest::newRow("signal--32") << 32;
+ QTest::newRow("signal--33") << 33;
+ QTest::newRow("signal--64") << 64;
+ QTest::newRow("signal--65") << 65;
+ QTest::newRow("signal--70") << 70;
+}
+
+void tst_qmetaobject::unconnected()
+{
+ LotsOfSignals *obj = new LotsOfSignals;
+ QFETCH(int, signal_index);
+ QVERIFY(obj->metaObject()->methodCount() == 73);
+ void *v;
+ QBENCHMARK {
+ //+1 because QObject has one slot
+ QMetaObject::metacall(obj, QMetaObject::InvokeMetaMethod, signal_index+1, &v);
+ }
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmetaobject)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro b/tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro
new file mode 100644
index 0000000000..a02273f7d0
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qmetaobject/qmetaobject.pro
@@ -0,0 +1,5 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qmetaobject
+
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/kernel/qmetatype/qmetatype.pro b/tests/benchmarks/corelib/kernel/qmetatype/qmetatype.pro
new file mode 100644
index 0000000000..80f9a2a398
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qmetatype/qmetatype.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+QT = core
+TEMPLATE = app
+TARGET = tst_qmetatype
+
+SOURCES += tst_qmetatype.cpp
+
diff --git a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
new file mode 100644
index 0000000000..4ead826d25
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -0,0 +1,285 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qtest.h>
+#include <QtCore/qmetatype.h>
+
+//TESTED_FILES=
+
+class tst_QMetaType : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QMetaType();
+ virtual ~tst_QMetaType();
+
+private slots:
+ void typeBuiltin_data();
+ void typeBuiltin();
+ void typeBuiltinNotNormalized_data();
+ void typeBuiltinNotNormalized();
+ void typeCustom();
+ void typeCustomNotNormalized();
+ void typeNotRegistered();
+ void typeNotRegisteredNotNormalized();
+
+ void typeNameBuiltin_data();
+ void typeNameBuiltin();
+ void typeNameCustom();
+ void typeNameNotRegistered();
+
+ void isRegisteredBuiltin_data();
+ void isRegisteredBuiltin();
+ void isRegisteredCustom();
+ void isRegisteredNotRegistered();
+
+ void constructCoreType_data();
+ void constructCoreType();
+ void constructCoreTypeCopy_data();
+ void constructCoreTypeCopy();
+};
+
+tst_QMetaType::tst_QMetaType()
+{
+}
+
+tst_QMetaType::~tst_QMetaType()
+{
+}
+
+void tst_QMetaType::typeBuiltin_data()
+{
+ QTest::addColumn<QByteArray>("typeName");
+ for (int i = 0; i < QMetaType::User; ++i) {
+ const char *name = QMetaType::typeName(i);
+ if (name)
+ QTest::newRow(name) << QByteArray(name);
+ }
+}
+
+void tst_QMetaType::typeBuiltin()
+{
+ QFETCH(QByteArray, typeName);
+ const char *nm = typeName.constData();
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i)
+ QMetaType::type(nm);
+ }
+}
+
+void tst_QMetaType::typeBuiltinNotNormalized_data()
+{
+ QTest::addColumn<QByteArray>("typeName");
+ for (int i = 0; i < QMetaType::User; ++i) {
+ const char *name = QMetaType::typeName(i);
+ if (name)
+ QTest::newRow(name) << QByteArray(name).append(" ");
+ }
+}
+
+void tst_QMetaType::typeBuiltinNotNormalized()
+{
+ QFETCH(QByteArray, typeName);
+ const char *nm = typeName.constData();
+ QBENCHMARK {
+ for (int i = 0; i < 10000; ++i)
+ QMetaType::type(nm);
+ }
+}
+
+struct Foo { int i; };
+
+void tst_QMetaType::typeCustom()
+{
+ qRegisterMetaType<Foo>("Foo");
+ QBENCHMARK {
+ for (int i = 0; i < 10000; ++i)
+ QMetaType::type("Foo");
+ }
+}
+
+void tst_QMetaType::typeCustomNotNormalized()
+{
+ qRegisterMetaType<Foo>("Foo");
+ QBENCHMARK {
+ for (int i = 0; i < 10000; ++i)
+ QMetaType::type("Foo ");
+ }
+}
+
+void tst_QMetaType::typeNotRegistered()
+{
+ Q_ASSERT(QMetaType::type("Bar") == 0);
+ QBENCHMARK {
+ for (int i = 0; i < 10000; ++i)
+ QMetaType::type("Bar");
+ }
+}
+
+void tst_QMetaType::typeNotRegisteredNotNormalized()
+{
+ Q_ASSERT(QMetaType::type("Bar") == 0);
+ QBENCHMARK {
+ for (int i = 0; i < 10000; ++i)
+ QMetaType::type("Bar ");
+ }
+}
+
+void tst_QMetaType::typeNameBuiltin_data()
+{
+ QTest::addColumn<int>("type");
+ for (int i = 0; i < QMetaType::User; ++i) {
+ const char *name = QMetaType::typeName(i);
+ if (name)
+ QTest::newRow(name) << i;
+ }
+}
+
+void tst_QMetaType::typeNameBuiltin()
+{
+ QFETCH(int, type);
+ QBENCHMARK {
+ for (int i = 0; i < 500000; ++i)
+ QMetaType::typeName(type);
+ }
+}
+
+void tst_QMetaType::typeNameCustom()
+{
+ int type = qRegisterMetaType<Foo>("Foo");
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i)
+ QMetaType::typeName(type);
+ }
+}
+
+void tst_QMetaType::typeNameNotRegistered()
+{
+ // We don't care much about this case, but test it anyway.
+ Q_ASSERT(QMetaType::typeName(-1) == 0);
+ QBENCHMARK {
+ for (int i = 0; i < 500000; ++i)
+ QMetaType::typeName(-1);
+ }
+}
+
+void tst_QMetaType::isRegisteredBuiltin_data()
+{
+ typeNameBuiltin_data();
+}
+
+void tst_QMetaType::isRegisteredBuiltin()
+{
+ QFETCH(int, type);
+ QBENCHMARK {
+ for (int i = 0; i < 500000; ++i)
+ QMetaType::isRegistered(type);
+ }
+}
+
+void tst_QMetaType::isRegisteredCustom()
+{
+ int type = qRegisterMetaType<Foo>("Foo");
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i)
+ QMetaType::isRegistered(type);
+ }
+}
+
+void tst_QMetaType::isRegisteredNotRegistered()
+{
+ Q_ASSERT(QMetaType::typeName(-1) == 0);
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i)
+ QMetaType::isRegistered(-1);
+ }
+}
+
+void tst_QMetaType::constructCoreType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = 0; i <= QMetaType::LastCoreType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ // GUI types are tested in tst_QGuiMetaType.
+}
+
+// Tests how fast QMetaType can default-construct and destroy a Qt
+// core type. The purpose of this benchmark is to measure the overhead
+// of using type id-based creation compared to creating the type
+// directly (i.e. "T *t = new T(); delete t;").
+void tst_QMetaType::constructCoreType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, (void *)0);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
+void tst_QMetaType::constructCoreTypeCopy_data()
+{
+ constructCoreType_data();
+}
+
+// Tests how fast QMetaType can copy-construct and destroy a Qt core
+// type. The purpose of this benchmark is to measure the overhead of
+// using type id-based creation compared to creating the type directly
+// (i.e. "T *t = new T(other); delete t;").
+void tst_QMetaType::constructCoreTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::construct(typeId, copy);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
+QTEST_MAIN(tst_QMetaType)
+#include "tst_qmetatype.moc"
diff --git a/tests/benchmarks/corelib/kernel/qobject/main.cpp b/tests/benchmarks/corelib/kernel/qobject/main.cpp
new file mode 100644
index 0000000000..801e368912
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qobject/main.cpp
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+#include <QtGui>
+#include <qtest.h>
+#include "object.h"
+#include <qcoreapplication.h>
+#include <qdatetime.h>
+
+enum {
+ CreationDeletionBenckmarkConstant = 34567,
+ SignalsAndSlotsBenchmarkConstant = 456789
+};
+
+class QObjectBenchmark : public QObject
+{
+Q_OBJECT
+private slots:
+ void signal_slot_benchmark();
+ void signal_slot_benchmark_data();
+ void qproperty_benchmark_data();
+ void qproperty_benchmark();
+ void dynamic_property_benchmark();
+ void connect_disconnect_benchmark_data();
+ void connect_disconnect_benchmark();
+};
+
+void QObjectBenchmark::signal_slot_benchmark_data()
+{
+ QTest::addColumn<int>("type");
+ QTest::newRow("simple function") << 0;
+ QTest::newRow("single signal/slot") << 1;
+ QTest::newRow("multi signal/slot") << 2;
+ QTest::newRow("unconnected signal") << 3;
+}
+
+void QObjectBenchmark::signal_slot_benchmark()
+{
+ QFETCH(int, type);
+
+ Object singleObject;
+ Object multiObject;
+ singleObject.setObjectName("single");
+ multiObject.setObjectName("multi");
+
+ singleObject.connect(&singleObject, SIGNAL(signal0()), SLOT(slot0()));
+
+ multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(slot0()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal1()));
+ multiObject.connect(&multiObject, SIGNAL(signal1()), SLOT(slot1()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal2()));
+ multiObject.connect(&multiObject, SIGNAL(signal2()), SLOT(slot2()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal3()));
+ multiObject.connect(&multiObject, SIGNAL(signal3()), SLOT(slot3()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal4()));
+ multiObject.connect(&multiObject, SIGNAL(signal4()), SLOT(slot4()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal5()));
+ multiObject.connect(&multiObject, SIGNAL(signal5()), SLOT(slot5()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal6()));
+ multiObject.connect(&multiObject, SIGNAL(signal6()), SLOT(slot6()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal7()));
+ multiObject.connect(&multiObject, SIGNAL(signal7()), SLOT(slot7()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal8()));
+ multiObject.connect(&multiObject, SIGNAL(signal8()), SLOT(slot8()));
+ // multiObject.connect(&multiObject, SIGNAL(signal0()), SLOT(signal9()));
+ multiObject.connect(&multiObject, SIGNAL(signal9()), SLOT(slot9()));
+
+ if (type == 0) {
+ QBENCHMARK {
+ singleObject.slot0();
+ }
+ } else if (type == 1) {
+ QBENCHMARK {
+ singleObject.emitSignal0();
+ }
+ } else if (type == 2) {
+ QBENCHMARK {
+ multiObject.emitSignal0();
+ }
+ } else if (type == 3) {
+ QBENCHMARK {
+ singleObject.emitSignal1();
+ }
+ }
+}
+
+void QObjectBenchmark::qproperty_benchmark_data()
+{
+ QTest::addColumn<QByteArray>("name");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->propertyCount(); ++i) {
+ QMetaProperty prop = mo->property(i);
+ QTest::newRow(prop.name()) << QByteArray(prop.name());
+ }
+}
+
+void QObjectBenchmark::qproperty_benchmark()
+{
+ QFETCH(QByteArray, name);
+ const char *p = name.constData();
+ QTreeView obj;
+ QVariant v = obj.property(p);
+ QBENCHMARK {
+ obj.setProperty(p, v);
+ (void)obj.property(p);
+ }
+}
+
+void QObjectBenchmark::dynamic_property_benchmark()
+{
+ QTreeView obj;
+ QBENCHMARK {
+ obj.setProperty("myProperty", 123);
+ (void)obj.property("myProperty");
+ obj.setProperty("myOtherProperty", 123);
+ (void)obj.property("myOtherProperty");
+ }
+}
+
+void QObjectBenchmark::connect_disconnect_benchmark_data()
+{
+ QTest::addColumn<QByteArray>("signal");
+ const QMetaObject *mo = &QTreeView::staticMetaObject;
+ for (int i = 0; i < mo->methodCount(); ++i) {
+ QMetaMethod method = mo->method(i);
+ if (method.methodType() != QMetaMethod::Signal)
+ continue;
+ QByteArray sig = method.signature();
+ QTest::newRow(sig) << sig;
+ }
+}
+
+void QObjectBenchmark::connect_disconnect_benchmark()
+{
+ QFETCH(QByteArray, signal);
+ signal.prepend('2');
+ const char *p = signal.constData();
+ QTreeView obj;
+ QBENCHMARK {
+ QObject::connect(&obj, p, &obj, p);
+ QObject::disconnect(&obj, p, &obj, p);
+ }
+}
+
+QTEST_MAIN(QObjectBenchmark)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/kernel/qobject/object.cpp b/tests/benchmarks/corelib/kernel/qobject/object.cpp
new file mode 100644
index 0000000000..67ed322217
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qobject/object.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "object.h"
+
+void Object::emitSignal0()
+{ emit signal0(); }
+void Object::emitSignal1()
+{ emit signal1(); }
+
+
+void Object::slot0()
+{ }
+void Object::slot1()
+{ }
+void Object::slot2()
+{ }
+void Object::slot3()
+{ }
+void Object::slot4()
+{ }
+void Object::slot5()
+{ }
+void Object::slot6()
+{ }
+void Object::slot7()
+{ }
+void Object::slot8()
+{ }
+void Object::slot9()
+{ }
diff --git a/tests/benchmarks/corelib/kernel/qobject/object.h b/tests/benchmarks/corelib/kernel/qobject/object.h
new file mode 100644
index 0000000000..820e4b77d1
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qobject/object.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef OBJECT_H
+#define OBJECT_H
+
+#include <qobject.h>
+
+class Object : public QObject
+{
+ Q_OBJECT
+public:
+ void emitSignal0();
+ void emitSignal1();
+signals:
+ void signal0();
+ void signal1();
+ void signal2();
+ void signal3();
+ void signal4();
+ void signal5();
+ void signal6();
+ void signal7();
+ void signal8();
+ void signal9();
+public slots:
+ void slot0();
+ void slot1();
+ void slot2();
+ void slot3();
+ void slot4();
+ void slot5();
+ void slot6();
+ void slot7();
+ void slot8();
+ void slot9();
+};
+
+#endif // OBJECT_H
diff --git a/tests/benchmarks/corelib/kernel/qobject/qobject.pro b/tests/benchmarks/corelib/kernel/qobject/qobject.pro
new file mode 100644
index 0000000000..1baaf58b7b
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qobject/qobject.pro
@@ -0,0 +1,9 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qobject
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += object.h
+SOURCES += main.cpp object.cpp
diff --git a/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/qtimer_vs_qmetaobject.pro b/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/qtimer_vs_qmetaobject.pro
new file mode 100644
index 0000000000..5ecb94c0f6
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/qtimer_vs_qmetaobject.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = qtimer_vs_qmetaobject
+DEPENDPATH += .
+INCLUDEPATH += .
+
+CONFIG += release
+#CONFIG += debug
+
+
+SOURCES += tst_qtimer_vs_qmetaobject.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/tst_qtimer_vs_qmetaobject.cpp b/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/tst_qtimer_vs_qmetaobject.cpp
new file mode 100644
index 0000000000..0f40dca3b1
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qtimer_vs_qmetaobject/tst_qtimer_vs_qmetaobject.cpp
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtTest/QtTest>
+
+#define INVOKE_COUNT 10000
+
+class qtimer_vs_qmetaobject : public QObject
+{
+ Q_OBJECT
+private slots:
+ void testZeroTimerSingleShot();
+ void testQueuedInvokeMethod();
+};
+
+class InvokeCounter : public QObject {
+ Q_OBJECT
+public:
+ InvokeCounter() : count(0) { };
+public slots:
+ void invokeSlot() {
+ count++;
+ if (count == INVOKE_COUNT)
+ QTestEventLoop::instance().exitLoop();
+ }
+protected:
+ int count;
+};
+
+void qtimer_vs_qmetaobject::testZeroTimerSingleShot()
+{
+ QBENCHMARK {
+ InvokeCounter invokeCounter;
+ for(int i = 0; i < INVOKE_COUNT; ++i) {
+ QTimer::singleShot(0, &invokeCounter, SLOT(invokeSlot()));
+ }
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ }
+}
+
+void qtimer_vs_qmetaobject::testQueuedInvokeMethod()
+{
+ QBENCHMARK {
+ InvokeCounter invokeCounter;
+ for(int i = 0; i < INVOKE_COUNT; ++i) {
+ QMetaObject::invokeMethod(&invokeCounter, "invokeSlot", Qt::QueuedConnection);
+ }
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ }
+}
+
+
+QTEST_MAIN(qtimer_vs_qmetaobject)
+
+#include "tst_qtimer_vs_qmetaobject.moc"
diff --git a/tests/benchmarks/corelib/kernel/qvariant/qvariant.pro b/tests/benchmarks/corelib/kernel/qvariant/qvariant.pro
new file mode 100644
index 0000000000..f3dd66af44
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qvariant/qvariant.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qvariant
+DEPENDPATH += .
+INCLUDEPATH += .
+
+CONFIG += release
+#CONFIG += debug
+
+
+SOURCES += tst_qvariant.cpp
diff --git a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
new file mode 100644
index 0000000000..2e217e2a63
--- /dev/null
+++ b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -0,0 +1,272 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtGui/QPixmap>
+#include <qtest.h>
+
+#define ITERATION_COUNT 1e5
+
+class tst_qvariant : public QObject
+{
+ Q_OBJECT
+private slots:
+ void testBound();
+
+ void doubleVariantCreation();
+ void floatVariantCreation();
+ void rectVariantCreation();
+ void stringVariantCreation();
+ void pixmapVariantCreation();
+
+ void doubleVariantSetValue();
+ void floatVariantSetValue();
+ void rectVariantSetValue();
+ void stringVariantSetValue();
+
+ void doubleVariantAssignment();
+ void floatVariantAssignment();
+ void rectVariantAssignment();
+ void stringVariantAssignment();
+
+ void doubleVariantValue();
+ void floatVariantValue();
+ void rectVariantValue();
+ void stringVariantValue();
+
+ void createCoreType_data();
+ void createCoreType();
+ void createCoreTypeCopy_data();
+ void createCoreTypeCopy();
+};
+
+void tst_qvariant::testBound()
+{
+ qreal d = qreal(.5);
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ d = qBound<qreal>(0, d, 1);
+ }
+ }
+}
+
+template <typename T>
+static void variantCreation(T val)
+{
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ QVariant v(val);
+ }
+ }
+}
+
+void tst_qvariant::doubleVariantCreation()
+{
+ variantCreation<double>(0.0);
+}
+
+void tst_qvariant::floatVariantCreation()
+{
+ variantCreation<float>(0.0f);
+}
+
+void tst_qvariant::rectVariantCreation()
+{
+ variantCreation<QRect>(QRect(1, 2, 3, 4));
+}
+
+void tst_qvariant::stringVariantCreation()
+{
+ variantCreation<QString>(QString());
+}
+
+void tst_qvariant::pixmapVariantCreation()
+{
+ variantCreation<QPixmap>(QPixmap());
+}
+
+template <typename T>
+static void variantSetValue(T d)
+{
+ QVariant v;
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ qVariantSetValue(v, d);
+ }
+ }
+}
+
+void tst_qvariant::doubleVariantSetValue()
+{
+ variantSetValue<double>(0.0);
+}
+
+void tst_qvariant::floatVariantSetValue()
+{
+ variantSetValue<float>(0.0f);
+}
+
+void tst_qvariant::rectVariantSetValue()
+{
+ variantSetValue<QRect>(QRect());
+}
+
+void tst_qvariant::stringVariantSetValue()
+{
+ variantSetValue<QString>(QString());
+}
+
+template <typename T>
+static void variantAssignment(T d)
+{
+ QVariant v;
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ v = d;
+ }
+ }
+}
+
+void tst_qvariant::doubleVariantAssignment()
+{
+ variantAssignment<double>(0.0);
+}
+
+void tst_qvariant::floatVariantAssignment()
+{
+ variantAssignment<float>(0.0f);
+}
+
+void tst_qvariant::rectVariantAssignment()
+{
+ variantAssignment<QRect>(QRect());
+}
+
+void tst_qvariant::stringVariantAssignment()
+{
+ variantAssignment<QString>(QString());
+}
+
+void tst_qvariant::doubleVariantValue()
+{
+ QVariant v(0.0);
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ v.toDouble();
+ }
+ }
+}
+
+void tst_qvariant::floatVariantValue()
+{
+ QVariant v(0.0f);
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ v.toFloat();
+ }
+ }
+}
+
+void tst_qvariant::rectVariantValue()
+{
+ QVariant v(QRect(1,2,3,4));
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ v.toRect();
+ }
+ }
+}
+
+void tst_qvariant::stringVariantValue()
+{
+ QVariant v = QString();
+ QBENCHMARK {
+ for(int i = 0; i < ITERATION_COUNT; ++i) {
+ v.toString();
+ }
+ }
+}
+
+void tst_qvariant::createCoreType_data()
+{
+ QTest::addColumn<int>("typeId");
+ for (int i = 0; i <= QMetaType::LastCoreType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+ for (int i = QMetaType::FirstCoreExtType; i <= QMetaType::LastCoreExtType; ++i)
+ QTest::newRow(QMetaType::typeName(i)) << i;
+}
+
+// Tests how fast a Qt core type can be default-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_qvariant::createCoreType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, (void *)0);
+ }
+}
+
+void tst_qvariant::createCoreTypeCopy_data()
+{
+ createCoreType_data();
+}
+
+// Tests how fast a Qt core type can be copy-constructed by a
+// QVariant. The purpose of this benchmark is to measure the overhead
+// of creating (and destroying) a QVariant compared to creating the
+// type directly.
+void tst_qvariant::createCoreTypeCopy()
+{
+ QFETCH(int, typeId);
+ QVariant other(typeId, (void *)0);
+ const void *copy = other.constData();
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i)
+ QVariant(typeId, copy);
+ }
+}
+
+QTEST_MAIN(tst_qvariant)
+
+#include "tst_qvariant.moc"
diff --git a/tests/benchmarks/corelib/plugin/plugin.pro b/tests/benchmarks/corelib/plugin/plugin.pro
new file mode 100644
index 0000000000..2afd7f328b
--- /dev/null
+++ b/tests/benchmarks/corelib/plugin/plugin.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = quuid
diff --git a/tests/benchmarks/corelib/plugin/quuid/quuid.pro b/tests/benchmarks/corelib/plugin/quuid/quuid.pro
new file mode 100644
index 0000000000..4e502fc5a4
--- /dev/null
+++ b/tests/benchmarks/corelib/plugin/quuid/quuid.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_quuid
+
+SOURCES += tst_quuid.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/plugin/quuid/tst_quuid.cpp b/tests/benchmarks/corelib/plugin/quuid/tst_quuid.cpp
new file mode 100644
index 0000000000..9e885eec8b
--- /dev/null
+++ b/tests/benchmarks/corelib/plugin/quuid/tst_quuid.cpp
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QUuid>
+#include <QtTest/QtTest>
+
+class tst_bench_QUuid : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_bench_QUuid()
+ { }
+
+private slots:
+ void createUuid();
+};
+
+void tst_bench_QUuid::createUuid()
+{
+ QBENCHMARK {
+ QUuid::createUuid();
+ }
+}
+
+QTEST_MAIN(tst_bench_QUuid);
+#include "tst_quuid.moc"
diff --git a/tests/benchmarks/corelib/thread/qmutex/qmutex.pro b/tests/benchmarks/corelib/thread/qmutex/qmutex.pro
new file mode 100644
index 0000000000..8fda5faaef
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qmutex/qmutex.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qmutex
+QT -= gui
+SOURCES += tst_qmutex.cpp
+
diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
new file mode 100644
index 0000000000..8b38661d5e
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp
@@ -0,0 +1,452 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QtCore>
+#include <QtTest/QtTest>
+
+#include <math.h>
+
+#ifdef Q_OS_SYMBIAN
+# include <e32std.h>
+typedef RMutex NativeMutexType;
+void NativeMutexInitialize(NativeMutexType *mutex)
+{
+ mutex->CreateLocal();
+}
+void NativeMutexDestroy(NativeMutexType *mutex)
+{
+ mutex->Close();
+}
+void NativeMutexLock(NativeMutexType *mutex)
+{
+ mutex->Wait();
+}
+void NativeMutexUnlock(NativeMutexType *mutex)
+{
+ mutex->Signal();
+}
+#elif defined(Q_OS_UNIX)
+# include <pthread.h>
+# include <errno.h>
+typedef pthread_mutex_t NativeMutexType;
+void NativeMutexInitialize(NativeMutexType *mutex)
+{
+ pthread_mutex_init(mutex, NULL);
+}
+void NativeMutexDestroy(NativeMutexType *mutex)
+{
+ pthread_mutex_destroy(mutex);
+}
+void NativeMutexLock(NativeMutexType *mutex)
+{
+ pthread_mutex_lock(mutex);
+}
+void NativeMutexUnlock(NativeMutexType *mutex)
+{
+ pthread_mutex_unlock(mutex);
+}
+#elif defined(Q_OS_WIN)
+# define _WIN32_WINNT 0x0400
+# include <windows.h>
+typedef CRITICAL_SECTION NativeMutexType;
+void NativeMutexInitialize(NativeMutexType *mutex)
+{
+ InitializeCriticalSection(mutex);
+}
+void NativeMutexDestroy(NativeMutexType *mutex)
+{
+ DeleteCriticalSection(mutex);
+}
+void NativeMutexLock(NativeMutexType *mutex)
+{
+ EnterCriticalSection(mutex);
+}
+void NativeMutexUnlock(NativeMutexType *mutex)
+{
+ LeaveCriticalSection(mutex);
+}
+#endif
+
+//TESTED_FILES=
+
+class tst_QMutex : public QObject
+{
+ Q_OBJECT
+
+ int threadCount;
+
+public:
+ // barriers for the contended tests
+ static QSemaphore semaphore1, semaphore2, semaphore3, semaphore4;
+
+ tst_QMutex()
+ {
+ // at least 2 threads, even on single cpu/core machines
+ threadCount = qMax(2, QThread::idealThreadCount());
+ qDebug("thread count: %d", threadCount);
+ }
+
+private slots:
+ void noThread_data();
+ void noThread();
+
+ void uncontendedNative();
+ void uncontendedQMutex();
+ void uncontendedQMutexLocker();
+
+ void contendedNative_data();
+ void contendedQMutex_data() { contendedNative_data(); }
+ void contendedQMutexLocker_data() { contendedNative_data(); }
+
+ void contendedNative();
+ void contendedQMutex();
+ void contendedQMutexLocker();
+};
+
+QSemaphore tst_QMutex::semaphore1;
+QSemaphore tst_QMutex::semaphore2;
+QSemaphore tst_QMutex::semaphore3;
+QSemaphore tst_QMutex::semaphore4;
+
+void tst_QMutex::noThread_data()
+{
+ QTest::addColumn<int>("t");
+
+ QTest::newRow("noLock") << 1;
+ QTest::newRow("QMutexInline") << 2;
+ QTest::newRow("QMutex") << 3;
+ QTest::newRow("QMutexLocker") << 4;
+}
+
+void tst_QMutex::noThread()
+{
+ volatile int count = 0;
+ const int N = 5000000;
+ QMutex mtx;
+
+ QFETCH(int, t);
+ switch(t) {
+ case 1:
+ QBENCHMARK {
+ count = 0;
+ for (int i = 0; i < N; i++) {
+ count++;
+ }
+ }
+ break;
+ case 2:
+ QBENCHMARK {
+ count = 0;
+ for (int i = 0; i < N; i++) {
+ mtx.lockInline();
+ count++;
+ mtx.unlockInline();
+ }
+ }
+ break;
+ case 3:
+ QBENCHMARK {
+ count = 0;
+ for (int i = 0; i < N; i++) {
+ mtx.lock();
+ count++;
+ mtx.unlock();
+ }
+ }
+ break;
+ case 4:
+ QBENCHMARK {
+ count = 0;
+ for (int i = 0; i < N; i++) {
+ QMutexLocker locker(&mtx);
+ count++;
+ }
+ }
+ break;
+ }
+ QCOMPARE(int(count), N);
+}
+
+void tst_QMutex::uncontendedNative()
+{
+ NativeMutexType mutex;
+ NativeMutexInitialize(&mutex);
+ QBENCHMARK {
+ NativeMutexLock(&mutex);
+ NativeMutexUnlock(&mutex);
+ }
+ NativeMutexDestroy(&mutex);
+}
+
+void tst_QMutex::uncontendedQMutex()
+{
+ QMutex mutex;
+ QBENCHMARK {
+ mutex.lock();
+ mutex.unlock();
+ }
+}
+
+void tst_QMutex::uncontendedQMutexLocker()
+{
+ QMutex mutex;
+ QBENCHMARK {
+ QMutexLocker locker(&mutex);
+ }
+}
+
+void tst_QMutex::contendedNative_data()
+{
+ QTest::addColumn<int>("iterations");
+ QTest::addColumn<int>("msleepDuration");
+ QTest::addColumn<bool>("use2mutexes");
+
+ QTest::newRow("baseline") << 0 << -1 << false;
+
+ QTest::newRow("no msleep, 1 mutex") << 1000 << -1 << false;
+ QTest::newRow("no msleep, 2 mutexes") << 1000 << -1 << true;
+ QTest::newRow("msleep(0), 1 mutex") << 1000 << 0 << false;
+ QTest::newRow("msleep(0), 2 mutexes") << 1000 << 0 << true;
+ QTest::newRow("msleep(1), 1 mutex") << 10 << 1 << false;
+ QTest::newRow("msleep(1), 2 mutexes") << 10 << 1 << true;
+ QTest::newRow("msleep(2), 1 mutex") << 10 << 2 << false;
+ QTest::newRow("msleep(2), 2 mutexes") << 10 << 2 << true;
+ QTest::newRow("msleep(10), 1 mutex") << 10 << 10 << false;
+ QTest::newRow("msleep(10), 2 mutexes") << 10 << 10 << true;
+}
+
+class NativeMutexThread : public QThread
+{
+ NativeMutexType *mutex1, *mutex2;
+ int iterations, msleepDuration;
+ bool use2mutexes;
+public:
+ bool done;
+ NativeMutexThread(NativeMutexType *mutex1, NativeMutexType *mutex2, int iterations, int msleepDuration, bool use2mutexes)
+ : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false)
+ { }
+ void run() {
+ forever {
+ tst_QMutex::semaphore1.release();
+ tst_QMutex::semaphore2.acquire();
+ if (done)
+ break;
+ for (int i = 0; i < iterations; ++i) {
+ NativeMutexLock(mutex1);
+ if (use2mutexes)
+ NativeMutexLock(mutex2);
+ if (msleepDuration >= 0)
+ msleep(msleepDuration);
+ if (use2mutexes)
+ NativeMutexUnlock(mutex2);
+ NativeMutexUnlock(mutex1);
+
+ QThread::yieldCurrentThread();
+ }
+ tst_QMutex::semaphore3.release();
+ tst_QMutex::semaphore4.acquire();
+ }
+ }
+};
+
+void tst_QMutex::contendedNative()
+{
+ QFETCH(int, iterations);
+ QFETCH(int, msleepDuration);
+ QFETCH(bool, use2mutexes);
+
+ NativeMutexType mutex1, mutex2;
+ NativeMutexInitialize(&mutex1);
+ NativeMutexInitialize(&mutex2);
+
+ QVector<NativeMutexThread *> threads(threadCount);
+ for (int i = 0; i < threads.count(); ++i) {
+ threads[i] = new NativeMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes);
+ threads[i]->start();
+ }
+
+ QBENCHMARK {
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ semaphore3.acquire(threadCount);
+ semaphore4.release(threadCount);
+ }
+
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->done = true;
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->wait();
+ qDeleteAll(threads);
+
+ NativeMutexDestroy(&mutex1);
+ NativeMutexDestroy(&mutex2);
+}
+
+class QMutexThread : public QThread
+{
+ QMutex *mutex1, *mutex2;
+ int iterations, msleepDuration;
+ bool use2mutexes;
+public:
+ bool done;
+ QMutexThread(QMutex *mutex1, QMutex *mutex2, int iterations, int msleepDuration, bool use2mutexes)
+ : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false)
+ { }
+ void run() {
+ forever {
+ tst_QMutex::semaphore1.release();
+ tst_QMutex::semaphore2.acquire();
+ if (done)
+ break;
+ for (int i = 0; i < iterations; ++i) {
+ mutex1->lock();
+ if (use2mutexes)
+ mutex2->lock();
+ if (msleepDuration >= 0)
+ msleep(msleepDuration);
+ if (use2mutexes)
+ mutex2->unlock();
+ mutex1->unlock();
+
+ QThread::yieldCurrentThread();
+ }
+ tst_QMutex::semaphore3.release();
+ tst_QMutex::semaphore4.acquire();
+ }
+ }
+};
+
+void tst_QMutex::contendedQMutex()
+{
+ QFETCH(int, iterations);
+ QFETCH(int, msleepDuration);
+ QFETCH(bool, use2mutexes);
+
+ QMutex mutex1, mutex2;
+
+ QVector<QMutexThread *> threads(threadCount);
+ for (int i = 0; i < threads.count(); ++i) {
+ threads[i] = new QMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes);
+ threads[i]->start();
+ }
+
+ QBENCHMARK {
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ semaphore3.acquire(threadCount);
+ semaphore4.release(threadCount);
+ }
+
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->done = true;
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->wait();
+ qDeleteAll(threads);
+}
+
+class QMutexLockerThread : public QThread
+{
+ QMutex *mutex1, *mutex2;
+ int iterations, msleepDuration;
+ bool use2mutexes;
+public:
+ bool done;
+ QMutexLockerThread(QMutex *mutex1, QMutex *mutex2, int iterations, int msleepDuration, bool use2mutexes)
+ : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false)
+ { }
+ void run() {
+ forever {
+ tst_QMutex::semaphore1.release();
+ tst_QMutex::semaphore2.acquire();
+ if (done)
+ break;
+ for (int i = 0; i < iterations; ++i) {
+ {
+ QMutexLocker locker1(mutex1);
+ QMutexLocker locker2(use2mutexes ? mutex2 : 0);
+ if (msleepDuration >= 0)
+ msleep(msleepDuration);
+ }
+
+ QThread::yieldCurrentThread();
+ }
+ tst_QMutex::semaphore3.release();
+ tst_QMutex::semaphore4.acquire();
+ }
+ }
+};
+
+void tst_QMutex::contendedQMutexLocker()
+{
+ QFETCH(int, iterations);
+ QFETCH(int, msleepDuration);
+ QFETCH(bool, use2mutexes);
+
+ QMutex mutex1, mutex2;
+
+ QVector<QMutexLockerThread *> threads(threadCount);
+ for (int i = 0; i < threads.count(); ++i) {
+ threads[i] = new QMutexLockerThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes);
+ threads[i]->start();
+ }
+
+ QBENCHMARK {
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ semaphore3.acquire(threadCount);
+ semaphore4.release(threadCount);
+ }
+
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->done = true;
+ semaphore1.acquire(threadCount);
+ semaphore2.release(threadCount);
+ for (int i = 0; i < threads.count(); ++i)
+ threads[i]->wait();
+ qDeleteAll(threads);
+}
+
+QTEST_MAIN(tst_QMutex)
+#include "tst_qmutex.moc"
diff --git a/tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro b/tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro
new file mode 100644
index 0000000000..e8014d6ccc
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qthreadstorage/qthreadstorage.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qthreadstorage
+
+SOURCES += tst_qthreadstorage.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp b/tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp
new file mode 100644
index 0000000000..1c946b8a39
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qthreadstorage/tst_qthreadstorage.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qtest.h>
+#include <QtCore>
+
+//TESTED_FILES=
+
+QThreadStorage<int *> dummy[8];
+
+QThreadStorage<QString *> tls1;
+
+class tst_QThreadStorage : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QThreadStorage();
+ virtual ~tst_QThreadStorage();
+
+public slots:
+ void init();
+ void cleanup();
+
+private slots:
+ void construct();
+ void get();
+ void set();
+};
+
+tst_QThreadStorage::tst_QThreadStorage()
+{
+}
+
+tst_QThreadStorage::~tst_QThreadStorage()
+{
+}
+
+void tst_QThreadStorage::init()
+{
+ dummy[1].setLocalData(new int(5));
+ dummy[2].setLocalData(new int(4));
+ dummy[3].setLocalData(new int(3));
+ tls1.setLocalData(new QString());
+}
+
+void tst_QThreadStorage::cleanup()
+{
+}
+
+void tst_QThreadStorage::construct()
+{
+ QBENCHMARK {
+ QThreadStorage<int *> ts;
+ }
+}
+
+
+void tst_QThreadStorage::get()
+{
+ QThreadStorage<int *> ts;
+ ts.setLocalData(new int(45));
+
+ int count = 0;
+ QBENCHMARK {
+ int *i = ts.localData();
+ count += *i;
+ }
+ ts.setLocalData(0);
+}
+
+void tst_QThreadStorage::set()
+{
+ QThreadStorage<int *> ts;
+
+ int count = 0;
+ QBENCHMARK {
+ ts.setLocalData(new int(count));
+ count++;
+ }
+ ts.setLocalData(0);
+}
+
+
+QTEST_MAIN(tst_QThreadStorage)
+#include "tst_qthreadstorage.moc"
diff --git a/tests/benchmarks/corelib/thread/qwaitcondition/qwaitcondition.pro b/tests/benchmarks/corelib/thread/qwaitcondition/qwaitcondition.pro
new file mode 100644
index 0000000000..bc7bd582f3
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qwaitcondition/qwaitcondition.pro
@@ -0,0 +1,5 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qwaitcondition
+QT -= gui
+SOURCES += tst_qwaitcondition.cpp
diff --git a/tests/benchmarks/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp b/tests/benchmarks/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp
new file mode 100644
index 0000000000..1bfc637402
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QtCore>
+#include <QtTest/QtTest>
+
+#include <math.h>
+
+
+class tst_QWaitCondition : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QWaitCondition()
+ {
+ }
+
+private slots:
+ void oscillate_data();
+ void oscillate();
+
+ void thrash_data();
+ void thrash();
+
+public:
+ static QWaitCondition local, remote;
+ enum Turn {LocalTurn, RemoteTurn};
+ static Turn turn;
+};
+
+QWaitCondition tst_QWaitCondition::local;
+QWaitCondition tst_QWaitCondition::remote;
+tst_QWaitCondition::Turn tst_QWaitCondition::turn = tst_QWaitCondition::LocalTurn;
+
+class OscillateThread : public QThread
+{
+public:
+ bool m_done;
+ bool m_useMutex;
+ unsigned long m_timeout;
+ bool m_wakeOne;
+ int count;
+
+ OscillateThread(bool useMutex, unsigned long timeout, bool wakeOne)
+ : m_done(false), m_useMutex(useMutex), m_timeout(timeout), m_wakeOne(wakeOne)
+ {}
+ void run()
+ {
+ QMutex mtx;
+ QReadWriteLock rwl;
+ count = 0;
+
+ forever {
+ if (m_done)
+ break;
+ if (m_useMutex) {
+ mtx.lock();
+ while (tst_QWaitCondition::turn == tst_QWaitCondition::LocalTurn)
+ tst_QWaitCondition::remote.wait(&mtx, m_timeout);
+ mtx.unlock();
+ } else {
+ rwl.lockForWrite();
+ while (tst_QWaitCondition::turn == tst_QWaitCondition::LocalTurn)
+ tst_QWaitCondition::remote.wait(&rwl, m_timeout);
+ rwl.unlock();
+ }
+ tst_QWaitCondition::turn = tst_QWaitCondition::LocalTurn;
+ if (m_wakeOne)
+ tst_QWaitCondition::local.wakeOne();
+ else
+ tst_QWaitCondition::local.wakeAll();
+ count++;
+ }
+ }
+};
+
+void tst_QWaitCondition::oscillate_data()
+{
+ QTest::addColumn<bool>("useMutex");
+ QTest::addColumn<unsigned long>("timeout");
+ QTest::addColumn<bool>("wakeOne");
+
+ QTest::newRow("mutex, timeout, one") << true << 1000ul << true;
+ QTest::newRow("readWriteLock, timeout, one") << false << 1000ul << true;
+ QTest::newRow("mutex, timeout, all") << true << 1000ul << false;
+ QTest::newRow("readWriteLock, timeout, all") << false << 1000ul << false;
+ QTest::newRow("mutex, forever, one") << true << ULONG_MAX << true;
+ QTest::newRow("readWriteLock, forever, one") << false << ULONG_MAX << true;
+ QTest::newRow("mutex, forever, all") << true << ULONG_MAX << false;
+ QTest::newRow("readWriteLock, forever, all") << false << ULONG_MAX << false;
+}
+
+void tst_QWaitCondition::oscillate()
+{
+ QMutex mtx;
+ QReadWriteLock rwl;
+
+ QFETCH(bool, useMutex);
+ QFETCH(unsigned long, timeout);
+ QFETCH(bool, wakeOne);
+
+ turn = LocalTurn;
+ OscillateThread thrd(useMutex, timeout, wakeOne);
+ thrd.start();
+
+ QBENCHMARK {
+ if (useMutex)
+ mtx.lock();
+ else
+ rwl.lockForWrite();
+ turn = RemoteTurn;
+ if (wakeOne)
+ remote.wakeOne();
+ else
+ remote.wakeAll();
+ if (useMutex) {
+ while (turn == RemoteTurn)
+ local.wait(&mtx, timeout);
+ mtx.unlock();
+ } else {
+ while (turn == RemoteTurn)
+ local.wait(&rwl, timeout);
+ rwl.unlock();
+ }
+ }
+
+ thrd.m_done = true;
+ remote.wakeAll();
+ thrd.wait();
+
+ QCOMPARE(0, 0);
+}
+
+void tst_QWaitCondition::thrash_data()
+{
+ oscillate_data();
+}
+
+void tst_QWaitCondition::thrash()
+{
+ QMutex mtx;
+ mtx.lock();
+
+ QFETCH(bool, useMutex);
+ QFETCH(unsigned long, timeout);
+ QFETCH(bool, wakeOne);
+
+ turn = LocalTurn;
+ OscillateThread thrd(useMutex, timeout, wakeOne);
+ thrd.start();
+ local.wait(&mtx, 1000ul);
+ mtx.unlock();
+
+ QBENCHMARK {
+ turn = RemoteTurn;
+ if (wakeOne)
+ remote.wakeOne();
+ else
+ remote.wakeAll();
+ }
+
+ thrd.m_done = true;
+ turn = RemoteTurn;
+ remote.wakeAll();
+ thrd.wait();
+
+ QCOMPARE(0, 0);
+}
+
+QTEST_MAIN(tst_QWaitCondition)
+#include "tst_qwaitcondition.moc"
diff --git a/tests/benchmarks/corelib/thread/thread.pro b/tests/benchmarks/corelib/thread/thread.pro
new file mode 100644
index 0000000000..26570bacfe
--- /dev/null
+++ b/tests/benchmarks/corelib/thread/thread.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+SUBDIRS = \
+ qthreadstorage
diff --git a/tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro b/tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro
new file mode 100644
index 0000000000..0dcee4f5dc
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/containers-associative/containers-associative.pro
@@ -0,0 +1,9 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_containers-associative
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += main.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/tools/containers-associative/main.cpp b/tests/benchmarks/corelib/tools/containers-associative/main.cpp
new file mode 100644
index 0000000000..b06bb99633
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/containers-associative/main.cpp
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QString>
+
+#include <qtest.h>
+
+class tst_associative_containers : public QObject
+{
+ Q_OBJECT
+private slots:
+ void insert_data();
+ void insert();
+ void lookup_data();
+ void lookup();
+};
+
+template <typename T>
+void testInsert(int size)
+{
+ T container;
+
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ container.insert(i, i);
+ }
+}
+
+void tst_associative_containers::insert_data()
+{
+ QTest::addColumn<bool>("useHash");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+
+ const QByteArray sizeString = QByteArray::number(size);
+
+ QTest::newRow(("hash--" + sizeString).constData()) << true << size;
+ QTest::newRow(("map--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_associative_containers::insert()
+{
+ QFETCH(bool, useHash);
+ QFETCH(int, size);
+
+ QHash<int, int> testHash;
+ QMap<int, int> testMap;
+
+ if (useHash) {
+ testInsert<QHash<int, int> >(size);
+ } else {
+ testInsert<QMap<int, int> >(size);
+ }
+}
+
+void tst_associative_containers::lookup_data()
+{
+// setReportType(LineChartReport);
+// setChartTitle("Time to call value(), with an increasing number of items in the container");
+
+ QTest::addColumn<bool>("useHash");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+
+ const QByteArray sizeString = QByteArray::number(size);
+
+ QTest::newRow(("hash--" + sizeString).constData()) << true << size;
+ QTest::newRow(("map--" + sizeString).constData()) << false << size;
+ }
+}
+
+template <typename T>
+void testLookup(int size)
+{
+ T container;
+
+ for (int i = 0; i < size; ++i)
+ container.insert(i, i);
+
+ int val;
+
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ val = container.value(i);
+
+ }
+}
+
+void tst_associative_containers::lookup()
+{
+ QFETCH(bool, useHash);
+ QFETCH(int, size);
+
+ if (useHash) {
+ testLookup<QHash<int, int> >(size);
+ } else {
+ testLookup<QMap<int, int> >(size);
+ }
+}
+
+QTEST_MAIN(tst_associative_containers)
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro b/tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro
new file mode 100644
index 0000000000..656510e72d
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/containers-sequential/containers-sequential.pro
@@ -0,0 +1,9 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_containers-sequential
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += main.cpp
+QT -= gui
diff --git a/tests/benchmarks/corelib/tools/containers-sequential/main.cpp b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp
new file mode 100644
index 0000000000..ac183ce0cb
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/containers-sequential/main.cpp
@@ -0,0 +1,265 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+// This file contains benchmarks for comparing QVector against std::vector
+
+#include <QtCore>
+#include <QVector>
+#include <vector>
+
+#include <qtest.h>
+
+template <typename T> // T is the item type
+class UseCases {
+public:
+ virtual ~UseCases() {}
+
+ // Use case: Insert \a size items into the vector.
+ virtual void insert(int size) = 0;
+
+ // Use case: Lookup \a size items from the vector.
+ virtual void lookup(int size) = 0;
+};
+
+template <typename T>
+T * f(T *ts) // dummy function to prevent code from being optimized away by the compiler
+{
+ return ts;
+}
+
+// This subclass implements the use cases using QVector as efficiently as possible.
+template <typename T>
+class UseCases_QVector : public UseCases<T>
+{
+ void insert(int size)
+ {
+ QVector<T> v;
+ T t;
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ v.append(t);
+ }
+ }
+
+ void lookup(int size)
+ {
+ QVector<T> v;
+
+ T t;
+ for (int i = 0; i < size; ++i)
+ v.append(t);
+
+ T *ts = new T[size];
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ ts[i] = v.value(i);
+ }
+ f<T>(ts);
+ delete[] ts;
+ }
+};
+
+// This subclass implements the use cases using std::vector as efficiently as possible.
+template <typename T>
+class UseCases_stdvector : public UseCases<T>
+{
+ void insert(int size)
+ {
+ std::vector<T> v;
+ T t;
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ v.push_back(t);
+ }
+ }
+
+ void lookup(int size)
+ {
+ std::vector<T> v;
+
+ T t;
+ for (int i = 0; i < size; ++i)
+ v.push_back(t);
+
+ T *ts = new T[size];
+ QBENCHMARK {
+ for (int i = 0; i < size; ++i)
+ ts[i] = v[i];
+ }
+ f<T>(ts);
+ delete[] ts;
+ }
+};
+
+struct Large { // A "large" item type
+ int x[1000];
+};
+
+// Symbian devices typically have limited memory
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_WINCE)
+# define LARGE_MAX_SIZE 2000
+#else
+# define LARGE_MAX_SIZE 20000
+#endif
+
+class tst_vector_vs_std : public QObject
+{
+ Q_OBJECT
+public:
+ tst_vector_vs_std()
+ {
+ useCases_QVector_int = new UseCases_QVector<int>;
+ useCases_stdvector_int = new UseCases_stdvector<int>;
+
+ useCases_QVector_Large = new UseCases_QVector<Large>;
+ useCases_stdvector_Large = new UseCases_stdvector<Large>;
+ }
+
+private:
+ UseCases<int> *useCases_QVector_int;
+ UseCases<int> *useCases_stdvector_int;
+ UseCases<Large> *useCases_QVector_Large;
+ UseCases<Large> *useCases_stdvector_Large;
+
+private slots:
+ void insert_int_data();
+ void insert_int();
+ void insert_Large_data();
+ void insert_Large();
+ void lookup_int_data();
+ void lookup_int();
+ void lookup_Large_data();
+ void lookup_Large();
+};
+
+void tst_vector_vs_std::insert_int_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::insert_int()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_int->insert(size);
+ else
+ useCases_QVector_int->insert(size);
+}
+
+void tst_vector_vs_std::insert_Large_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::insert_Large()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_Large->insert(size);
+ else
+ useCases_QVector_Large->insert(size);
+}
+
+void tst_vector_vs_std::lookup_int_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < 20000; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-int--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-int--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::lookup_int()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_int->lookup(size);
+ else
+ useCases_QVector_int->lookup(size);
+}
+
+void tst_vector_vs_std::lookup_Large_data()
+{
+ QTest::addColumn<bool>("useStd");
+ QTest::addColumn<int>("size");
+
+ for (int size = 10; size < LARGE_MAX_SIZE; size += 100) {
+ const QByteArray sizeString = QByteArray::number(size);
+ QTest::newRow(("std::vector-Large--" + sizeString).constData()) << true << size;
+ QTest::newRow(("QVector-Large--" + sizeString).constData()) << false << size;
+ }
+}
+
+void tst_vector_vs_std::lookup_Large()
+{
+ QFETCH(bool, useStd);
+ QFETCH(int, size);
+
+ if (useStd)
+ useCases_stdvector_Large->lookup(size);
+ else
+ useCases_QVector_Large->lookup(size);
+}
+
+QTEST_MAIN(tst_vector_vs_std)
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/tools/qbytearray/main.cpp b/tests/benchmarks/corelib/tools/qbytearray/main.cpp
new file mode 100644
index 0000000000..9c204a5605
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qbytearray/main.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QDebug>
+#include <QIODevice>
+#include <QFile>
+#include <QString>
+
+#include <qtest.h>
+
+
+class tst_qbytearray : public QObject
+{
+ Q_OBJECT
+private slots:
+ void append();
+ void append_data();
+};
+
+
+void tst_qbytearray::append_data()
+{
+ QTest::addColumn<int>("size");
+ QTest::newRow("1") << int(1);
+ QTest::newRow("10") << int(10);
+ QTest::newRow("100") << int(100);
+ QTest::newRow("1000") << int(1000);
+ QTest::newRow("10000") << int(10000);
+ QTest::newRow("100000") << int(100000);
+ QTest::newRow("1000000") << int(1000000);
+ QTest::newRow("10000000") << int(10000000);
+ QTest::newRow("100000000") << int(100000000);
+}
+
+void tst_qbytearray::append()
+{
+ QFETCH(int, size);
+
+#ifdef Q_OS_SYMBIAN
+ if (size > 1000000)
+ QSKIP("Skipped due to limited memory in many Symbian devices.", SkipSingle);
+#endif
+
+ QByteArray ba;
+ QBENCHMARK {
+ QByteArray ba2(size, 'x');
+ ba.append(ba2);
+ ba.clear();
+ }
+}
+
+
+QTEST_MAIN(tst_qbytearray)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/tools/qbytearray/qbytearray.pro b/tests/benchmarks/corelib/tools/qbytearray/qbytearray.pro
new file mode 100755
index 0000000000..3474dd061a
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qbytearray/qbytearray.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qbytearray
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/tools/qhash/data.txt b/tests/benchmarks/corelib/tools/qhash/data.txt
new file mode 100644
index 0000000000..d5acd28820
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qhash/data.txt
@@ -0,0 +1,195 @@
+.
+./corelib.pro
+./kernel
+./kernel/kernel.pro
+./kernel/qobject
+./kernel/qobject/main.cpp
+./kernel/qobject/object.cpp
+./kernel/qobject/object.h
+./kernel/qobject/Makefile
+./kernel/qobject/qobject.pro
+./kernel/qvariant
+./kernel/qvariant/tst_qvariant.cpp
+./kernel/qvariant/Makefile
+./kernel/qvariant/qvariant.pro
+./kernel/qtimer_vs_qmetaobject
+./kernel/qtimer_vs_qmetaobject/tst_qtimer_vs_qmetaobject.cpp
+./kernel/qtimer_vs_qmetaobject/Makefile
+./kernel/qtimer_vs_qmetaobject/qtimer_vs_qmetaobject.pro
+./kernel/.pch
+./kernel/.pch/debug-shared
+./kernel/qmetaobject
+./kernel/qmetaobject/main.cpp
+./kernel/qmetaobject/qmetaobject.pro
+./kernel/qmetaobject/Makefile
+./kernel/Makefile
+./kernel/.obj
+./kernel/.obj/debug-shared
+./kernel/events
+./kernel/events/events.pro
+./kernel/events/main.cpp
+./kernel/events/Makefile
+./kernel/qmetatype
+./kernel/qmetatype/qmetatype.pro
+./kernel/qmetatype/Makefile
+./kernel/qmetatype/tst_qmetatype.cpp
+./codecs
+./codecs/qtextcodec
+./codecs/qtextcodec/qtextcodec.pro
+./codecs/qtextcodec/main.cpp
+./codecs/qtextcodec/Makefile
+./codecs/qtextcodec/utf-8.txt
+./codecs/codecs.pro
+./codecs/.pch
+./codecs/.pch/debug-shared
+./codecs/Makefile
+./codecs/.obj
+./codecs/.obj/debug-shared
+./.pch
+./.pch/debug-shared
+./tools
+./tools/tools.pro
+./tools/qregexp
+./tools/qregexp/qregexp.qrc
+./tools/qregexp/main.cpp
+./tools/qregexp/Makefile
+./tools/qregexp/qregexp.pro
+./tools/qvector
+./tools/qvector/tst_vector
+./tools/qvector/.pch
+./tools/qvector/.pch/debug-shared
+./tools/qvector/qrawvector.h
+./tools/qvector/main.cpp
+./tools/qvector/Makefile
+./tools/qvector/.moc
+./tools/qvector/.moc/release-shared
+./tools/qvector/.moc/release-shared/main.moc
+./tools/qvector/.obj
+./tools/qvector/.obj/release-shared
+./tools/qvector/.obj/release-shared/outofline.o
+./tools/qvector/.obj/release-shared/main.o
+./tools/qvector/outofline.cpp
+./tools/qvector/qvector.pro
+./tools/.pch
+./tools/.pch/debug-shared
+./tools/qstringbuilder
+./tools/qstringbuilder/main.cpp
+./tools/qstringbuilder/Makefile
+./tools/qstringbuilder/qstringbuilder.pro
+./tools/containers-sequential
+./tools/containers-sequential/containers-sequential.pro
+./tools/containers-sequential/main.cpp
+./tools/containers-sequential/Makefile
+./tools/qstring
+./tools/qstring/generatelist.pl
+./tools/qstring/data.h
+./tools/qstring/qstring.pro
+./tools/qstring/main.cpp
+./tools/qstring/data.cpp
+./tools/qstring/Makefile
+./tools/qstring/utf-8.txt
+./tools/qstringlist
+./tools/qstringlist/qstringlist.pro
+./tools/qstringlist/main.cpp
+./tools/qstringlist/.gitignore
+./tools/qstringlist/Makefile
+./tools/qbytearray
+./tools/qbytearray/qbytearray.pro
+./tools/qbytearray/main.cpp
+./tools/qbytearray/Makefile
+./tools/containers-associative
+./tools/containers-associative/containers-associative.pro
+./tools/containers-associative/main.cpp
+./tools/containers-associative/Makefile
+./tools/qrect
+./tools/qrect/main.cpp
+./tools/qrect/Makefile
+./tools/qrect/qrect.pro
+./tools/Makefile
+./tools/qhash
+./tools/qhash/data.txt
+./tools/qhash/qhash_string.cpp
+./tools/qhash/.qhash_string.cpp.swp
+./tools/qhash/qhash.pro
+./tools/qhash/outofline.cpp
+./tools/.obj
+./tools/.obj/debug-shared
+./Makefile
+./.obj
+./.obj/debug-shared
+./plugin
+./plugin/plugin.pro
+./plugin/.pch
+./plugin/.pch/debug-shared
+./plugin/Makefile
+./plugin/.obj
+./plugin/.obj/debug-shared
+./plugin/quuid
+./plugin/quuid/tst_quuid.cpp
+./plugin/quuid/quuid.pro
+./plugin/quuid/Makefile
+./io
+./io/qtemporaryfile
+./io/qtemporaryfile/qtemporaryfile.pro
+./io/qtemporaryfile/main.cpp
+./io/qtemporaryfile/Makefile
+./io/qiodevice
+./io/qiodevice/qiodevice.pro
+./io/qiodevice/main.cpp
+./io/qiodevice/Makefile
+./io/qurl
+./io/qurl/main.cpp
+./io/qurl/Makefile
+./io/qurl/qurl.pro
+./io/qdir
+./io/qdir/.pch
+./io/qdir/.pch/debug-shared
+./io/qdir/qdir.pro
+./io/qdir/tree
+./io/qdir/tree/bench_qdir_tree.qrc
+./io/qdir/tree/tree.pro
+./io/qdir/tree/4.6.0-list.txt
+./io/qdir/tree/Makefile
+./io/qdir/tree/bench_qdir_tree.cpp
+./io/qdir/Makefile
+./io/qdir/.obj
+./io/qdir/.obj/debug-shared
+./io/qdir/10000
+./io/qdir/10000/10000.pro
+./io/qdir/10000/bench_qdir_10000.cpp
+./io/qdir/10000/Makefile
+./io/.pch
+./io/.pch/debug-shared
+./io/qfile
+./io/qfile/qfile.pro
+./io/qfile/main.cpp
+./io/qfile/Makefile
+./io/io.pro
+./io/qfileinfo
+./io/qfileinfo/qfileinfo.pro
+./io/qfileinfo/main.cpp
+./io/qfileinfo/Makefile
+./io/qdiriterator
+./io/qdiriterator/qfilesystemiterator.h
+./io/qdiriterator/main.cpp
+./io/qdiriterator/Makefile
+./io/qdiriterator/qfilesystemiterator.cpp
+./io/qdiriterator/qdiriterator.pro
+./io/Makefile
+./io/.obj
+./io/.obj/debug-shared
+./thread
+./thread/qmutex
+./thread/qmutex/tst_qmutex.cpp
+./thread/qmutex/Makefile
+./thread/qmutex/qmutex.pro
+./thread/qthreadstorage
+./thread/qthreadstorage/qthreadstorage.pro
+./thread/qthreadstorage/Makefile
+./thread/qthreadstorage/tst_qthreadstorage.cpp
+./thread/.pch
+./thread/.pch/debug-shared
+./thread/Makefile
+./thread/.obj
+./thread/.obj/debug-shared
+./thread/thread.pro
diff --git a/tests/benchmarks/corelib/tools/qhash/outofline.cpp b/tests/benchmarks/corelib/tools/qhash/outofline.cpp
new file mode 100644
index 0000000000..0a60da29a3
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qhash/outofline.cpp
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtTest module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qhash_string.h"
+
+static void doHash(const unsigned short *p, uint &h)
+{
+#if 1
+ // Copied from static uint hash(const QChar *p, int n).
+ // Possibly not the cheapest way.
+ h = (h << 4) + (*p++);
+ h ^= (h & 0xf0000000) >> 23;
+ h &= 0x0fffffff;
+
+ h = (h << 4) + (*p++);
+ h ^= (h & 0xf0000000) >> 23;
+ h &= 0x0fffffff;
+
+ h = (h << 4) + (*p++);
+ h ^= (h & 0xf0000000) >> 23;
+ h &= 0x0fffffff;
+
+ h = (h << 4) + (*p++);
+ h ^= (h & 0xf0000000) >> 23;
+ h &= 0x0fffffff;
+#else
+ // Faster, but probably less spread.
+ h ^= *(unsigned int *)p;
+#endif
+}
+
+QT_BEGIN_NAMESPACE
+
+uint qHash(const String &str)
+{
+ const unsigned short *p = (unsigned short *)str.constData();
+ const int s = str.size();
+ switch (s) {
+ case 0: return 0;
+ case 1: return *p;
+ case 2: return *(unsigned int *)p;
+ case 3: return (*(unsigned int *)p) ^ *(p + 2);
+ //case 3: return (*p << 11) + (*(p + 1) << 22) + *(p + 2);
+ }
+ uint h = 0;
+ doHash(p, h);
+ doHash(p + s / 2 - 2, h);
+ doHash(p + s - 4, h);
+ return h;
+}
+
+QT_END_NAMESPACE
diff --git a/tests/benchmarks/corelib/tools/qhash/qhash.pro b/tests/benchmarks/corelib/tools/qhash/qhash.pro
new file mode 100644
index 0000000000..dff152cda7
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qhash/qhash.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TARGET = tst_hash
+QT = core
+INCLUDEPATH += .
+SOURCES += qhash_string.cpp outofline.cpp
+CONFIG += release
diff --git a/tests/benchmarks/corelib/tools/qhash/qhash_string.cpp b/tests/benchmarks/corelib/tools/qhash/qhash_string.cpp
new file mode 100644
index 0000000000..d9e62cca00
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qhash/qhash_string.cpp
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*
+
+////////////////////////////////////////////////////////////////////
+
+This benchmark serves as reality check on the idea that hashing the complete
+string is a good idea.
+
+ Executive summary: It is not a good idea.
+
+////////////////////////////////////////////////////////////////////
+
+********* Start testing of tst_QHash *********
+Config: Using QTest library 4.8.0, Qt 4.8.0
+PASS : tst_QHash::initTestCase()
+RESULT : tst_QHash::qhash_qt4():
+ 0.041 msecs per iteration (total: 85, iterations: 2048)
+PASS : tst_QHash::qhash_qt4()
+RESULT : tst_QHash::qhash_faster():
+ 0.0122 msecs per iteration (total: 100, iterations: 8192)
+PASS : tst_QHash::qhash_faster()
+PASS : tst_QHash::cleanupTestCase()
+Totals: 4 passed, 0 failed, 0 skipped
+
+////////////////////////////////////////////////////////////////////
+
+*/
+
+#include "qhash_string.h"
+
+#include <QFile>
+#include <QHash>
+#include <QString>
+#include <QStringList>
+
+#include <QTest>
+
+
+class tst_QHash : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void qhash_qt4();
+ void qhash_faster();
+
+private:
+ QString data();
+};
+
+const int N = 1000000;
+extern double s;
+
+///////////////////// QHash /////////////////////
+
+QString tst_QHash::data()
+{
+ QFile file("data.txt");
+ file.open(QIODevice::ReadOnly);
+ return QString::fromLatin1(file.readAll());
+}
+
+void tst_QHash::qhash_qt4()
+{
+ QStringList items = data().split(QLatin1Char('\n'));
+ QHash<QString, int> hash;
+
+ QBENCHMARK {
+ for (int i = 0, n = items.size(); i != n; ++i) {
+ hash[items.at(i)] = i;
+ }
+ }
+}
+
+void tst_QHash::qhash_faster()
+{
+ QList<String> items;
+ foreach (const QString &s, data().split(QLatin1Char('\n')))
+ items.append(s);
+ QHash<String, int> hash;
+
+ QBENCHMARK {
+ for (int i = 0, n = items.size(); i != n; ++i) {
+ hash[items.at(i)] = i;
+ }
+ }
+}
+
+QTEST_MAIN(tst_QHash)
+
+#include "qhash_string.moc"
diff --git a/tests/benchmarks/corelib/tools/qhash/qhash_string.h b/tests/benchmarks/corelib/tools/qhash/qhash_string.h
new file mode 100644
index 0000000000..78a3a42c1b
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qhash/qhash_string.h
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtTest module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QString>
+
+struct String : QString
+{
+ String() {}
+ String(const QString &s) : QString(s) {}
+};
+
+QT_BEGIN_NAMESPACE
+uint qHash(const String &);
+QT_END_NAMESPACE
diff --git a/tests/benchmarks/corelib/tools/qrect/main.cpp b/tests/benchmarks/corelib/tools/qrect/main.cpp
new file mode 100644
index 0000000000..3dd4722fd0
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qrect/main.cpp
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+// This file contains benchmarks for QRect/QRectF functions.
+
+#include <QDebug>
+#include <qtest.h>
+
+class tst_qrect : public QObject
+{
+ Q_OBJECT
+private slots:
+ // QRect functions:
+ void contains_point_data();
+ void contains_point();
+ void contains_rect_data();
+ void contains_rect();
+ void intersects_data();
+ void intersects();
+ void intersected_data();
+ void intersected();
+ void united_data();
+ void united();
+
+ // QRectF functions:
+ void contains_point_f_data();
+ void contains_point_f();
+ void contains_rect_f_data();
+ void contains_rect_f();
+ void intersects_f_data();
+ void intersects_f();
+ void intersected_f_data();
+ void intersected_f();
+ void united_f_data();
+ void united_f();
+};
+
+struct RectRectCombination
+{
+ QString tag;
+ qreal x1, y1, w1, h1, x2, y2, w2, h2;
+ RectRectCombination(
+ const QString &tag,
+ const qreal x1, const qreal y1, const qreal w1, const qreal h1,
+ const qreal x2, const qreal y2, const qreal w2, const qreal h2)
+ : tag(tag), x1(x1), y1(y1), w1(w1), h1(h1), x2(x2), y2(y2), w2(w2), h2(h2) {}
+};
+
+static QList<RectRectCombination> createRectRectCombinations()
+{
+ QList<RectRectCombination> result;
+ result << RectRectCombination("null", 0, 0, 0, 0, 0, 0, 0, 0);
+ result << RectRectCombination("null1", 0, 0, 0, 0, 0, 0, 10, 10);
+ result << RectRectCombination("null2", 0, 0, 10, 10, 0, 0, 0, 0);
+
+ result << RectRectCombination("miss", 0, 0, 10, 10, 11, 11, 10, 10);
+ result << RectRectCombination("intersect", 0, 0, 10, 10, 5, 5, 10, 10);
+ result << RectRectCombination("contain1", 0, 0, 10, 10, 1, 1, 8, 8);
+ result << RectRectCombination("contain2", 1, 1, 8, 8, 0, 0, 10, 10);
+
+ result << RectRectCombination("miss_flip1", 9, 9, -10, -10, 11, 11, 10, 10);
+ result << RectRectCombination("intersect_flip1", 9, 9, -10, -10, 5, 5, 10, 10);
+ result << RectRectCombination("contain1_flip1", 9, 9, -10, -10, 1, 1, 8, 8);
+ result << RectRectCombination("contain2_flip1", 8, 8, -8, -8, 0, 0, 10, 10);
+
+ result << RectRectCombination("miss_flip2", 0, 0, 10, 10, 20, 20, -10, -10);
+ result << RectRectCombination("intersect_flip2", 0, 0, 10, 10, 14, 14, -10, -10);
+ result << RectRectCombination("contain1_flip2", 0, 0, 10, 10, 8, 8, -8, -8);
+ result << RectRectCombination("contain2_flip2", 1, 1, 8, 8, 9, 9, -10, -10);
+
+ return result;
+}
+
+static void addRectRectData(bool includeProperArg = false)
+{
+ QTest::addColumn<QRectF>("rf1");
+ QTest::addColumn<QRectF>("rf2");
+ if (includeProperArg)
+ QTest::addColumn<bool>("proper");
+ for (int i = 0; i < (includeProperArg ? 2 : 1); ++i) {
+ QList<RectRectCombination> combinations = createRectRectCombinations();
+ foreach (RectRectCombination c, combinations) {
+ QTestData &testData = QTest::newRow(c.tag.toLatin1().data());
+ QRectF r1(c.x1, c.y1, c.w1, c.h1);
+ QRectF r2(c.x2, c.y2, c.w2, c.h2);
+ testData << r1 << r2;
+ if (includeProperArg)
+ testData << (i == 0);
+ }
+ }
+}
+
+struct RectPointCombination
+{
+ QString tag;
+ qreal x, y, w, h, px, py;
+ RectPointCombination(
+ const QString &tag,
+ const qreal x, const qreal y, const qreal w, const qreal h, const qreal px, const qreal py)
+ : tag(tag), x(x), y(y), w(w), h(h), px(px), py(py) {}
+};
+
+static QList<RectPointCombination> createRectPointCombinations()
+{
+ QList<RectPointCombination> result;
+ result << RectPointCombination("null", 0, 0, 0, 0, 0, 0);
+
+ result << RectPointCombination("miss", 0, 0, 10, 10, -1, -1);
+ result << RectPointCombination("contain", 0, 0, 10, 10, 0, 0);
+ result << RectPointCombination("contain_proper", 0, 0, 10, 10, 1, 1);
+
+ result << RectPointCombination("miss_flip", 9, 9, -10, -10, -1, -1);
+ result << RectPointCombination("contain_flip", 9, 9, -10, -10, 0, 0);
+ result << RectPointCombination("contain_flip_proper", 9, 9, -10, -10, 1, 1);
+
+ return result;
+}
+
+static void addRectPointData(bool includeProperArg = false)
+{
+ QTest::addColumn<QRectF>("rf");
+ QTest::addColumn<QPointF>("pf");
+ if (includeProperArg)
+ QTest::addColumn<bool>("proper");
+ for (int i = 0; i < (includeProperArg ? 2 : 1); ++i) {
+ QList<RectPointCombination> combinations = createRectPointCombinations();
+ foreach (RectPointCombination c, combinations) {
+ QTestData &testData = QTest::newRow(c.tag.toLatin1().data());
+ QRectF r(c.x, c.y, c.w, c.h);
+ QPointF p(c.px, c.py);
+ testData << r << p;
+ if (includeProperArg)
+ testData << (i == 0);
+ }
+ }
+}
+
+void tst_qrect::contains_point_data()
+{
+ addRectPointData(true);
+}
+
+void tst_qrect::contains_point()
+{
+ QFETCH(QRectF, rf);
+ QFETCH(QPointF, pf);
+ QFETCH(bool, proper);
+ QRect r(rf.toRect());
+ QPoint p(pf.toPoint());
+ QBENCHMARK {
+ r.contains(p, proper);
+ }
+}
+
+void tst_qrect::contains_rect_data()
+{
+ addRectRectData(true);
+}
+
+void tst_qrect::contains_rect()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QFETCH(bool, proper);
+ QRect r1(rf1.toRect());
+ QRect r2(rf2.toRect());
+ QBENCHMARK {
+ r1.contains(r2, proper);
+ }
+}
+
+void tst_qrect::intersects_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::intersects()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QRect r1(rf1.toRect());
+ QRect r2(rf2.toRect());
+ QBENCHMARK {
+ r1.intersects(r2);
+ }
+}
+
+void tst_qrect::intersected_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::intersected()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QRect r1(rf1.toRect());
+ QRect r2(rf2.toRect());
+ QBENCHMARK {
+ r1.intersected(r2);
+ }
+}
+
+void tst_qrect::united_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::united()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QRect r1(rf1.toRect());
+ QRect r2(rf2.toRect());
+ QBENCHMARK {
+ r1.united(r2);
+ }
+}
+
+void tst_qrect::contains_point_f_data()
+{
+ addRectPointData();
+}
+
+void tst_qrect::contains_point_f()
+{
+ QFETCH(QRectF, rf);
+ QFETCH(QPointF, pf);
+ QBENCHMARK {
+ rf.contains(pf);
+ }
+}
+
+void tst_qrect::contains_rect_f_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::contains_rect_f()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QBENCHMARK {
+ rf1.contains(rf2);
+ }
+}
+
+void tst_qrect::intersects_f_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::intersects_f()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QBENCHMARK {
+ rf1.intersects(rf2);
+ }
+}
+
+void tst_qrect::intersected_f_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::intersected_f()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QBENCHMARK {
+ rf1.intersected(rf2);
+ }
+}
+
+void tst_qrect::united_f_data()
+{
+ addRectRectData();
+}
+
+void tst_qrect::united_f()
+{
+ QFETCH(QRectF, rf1);
+ QFETCH(QRectF, rf2);
+ QBENCHMARK {
+ rf1.united(rf2);
+ }
+}
+
+QTEST_MAIN(tst_qrect)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/tools/qrect/qrect.pro b/tests/benchmarks/corelib/tools/qrect/qrect.pro
new file mode 100644
index 0000000000..4bd05aa0ad
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qrect/qrect.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qrect
+DEPENDPATH += .
+INCLUDEPATH += .
+
+QT -= gui
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/benchmarks/corelib/tools/qregexp/main.cpp b/tests/benchmarks/corelib/tools/qregexp/main.cpp
new file mode 100644
index 0000000000..98d539f21a
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qregexp/main.cpp
@@ -0,0 +1,594 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QDebug>
+#include <QRegExp>
+#include <QString>
+#include <QFile>
+
+#include <qtest.h>
+#ifdef HAVE_BOOST
+#include <boost/regex.hpp>
+#endif
+
+#include <QtScript>
+#include "pcre/pcre.h"
+
+#define ZLIB_VERSION "1.2.3.4"
+
+class tst_qregexp : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qregexp();
+private slots:
+ void escape_old();
+ void escape_old_data() { escape_data(); }
+ void escape_new1();
+ void escape_new1_data() { escape_data(); }
+ void escape_new2();
+ void escape_new2_data() { escape_data(); }
+ void escape_new3();
+ void escape_new3_data() { escape_data(); }
+ void escape_new4();
+ void escape_new4_data() { escape_data(); }
+/*
+ JSC outperforms everything.
+ Boost is less impressive then expected.
+ */
+ void simpleFind1();
+ void rangeReplace1();
+ void matchReplace1();
+
+ void simpleFind2();
+ void rangeReplace2();
+ void matchReplace2();
+
+ void simpleFindJSC();
+ void rangeReplaceJSC();
+ void matchReplaceJSC();
+
+#ifdef HAVE_BOOST
+ void simpleFindBoost();
+ void rangeReplaceBoost();
+ void matchReplaceBoost();
+#endif
+
+/* those apply an (incorrect) regexp on entire source
+ (this main.cpp). JSC appears to handle this
+ (ab)use case best. QRegExp performs extremly bad.
+ */
+ void horribleWrongReplace1();
+ void horribleReplace1();
+ void horribleReplace2();
+ void horribleWrongReplace2();
+ void horribleWrongReplaceJSC();
+ void horribleReplaceJSC();
+#ifdef HAVE_BOOST
+ void horribleWrongReplaceBoost();
+ void horribleReplaceBoost();
+#endif
+private:
+ QString str1;
+ QString str2;
+ void escape_data();
+};
+
+tst_qregexp::tst_qregexp()
+ :QObject()
+ ,str1("We are all happy monkeys")
+{
+ QFile f(":/main.cpp");
+ f.open(QFile::ReadOnly);
+ str2=f.readAll();
+}
+
+static void verify(const QString &quoted, const QString &expected)
+{
+ if (quoted != expected)
+ qDebug() << "ERROR:" << quoted << expected;
+}
+
+void tst_qregexp::escape_data()
+{
+ QTest::addColumn<QString>("pattern");
+ QTest::addColumn<QString>("expected");
+
+ QTest::newRow("escape 0") << "Hello world" << "Hello world";
+ QTest::newRow("escape 1") << "(Hello world)" << "\\(Hello world\\)";
+ {
+ QString s;
+ for (int i = 0; i < 10; ++i)
+ s += "(escape)";
+ QTest::newRow("escape 10") << s << QRegExp::escape(s);
+ }
+ {
+ QString s;
+ for (int i = 0; i < 100; ++i)
+ s += "(escape)";
+ QTest::newRow("escape 100") << s << QRegExp::escape(s);
+ }
+}
+
+void tst_qregexp::escape_old()
+{
+ QFETCH(QString, pattern);
+ QFETCH(QString, expected);
+
+ QBENCHMARK {
+ static const char meta[] = "$()*+.?[\\]^{|}";
+ QString quoted = pattern;
+ int i = 0;
+
+ while (i < quoted.length()) {
+ if (strchr(meta, quoted.at(i).toLatin1()) != 0)
+ quoted.insert(i++, QLatin1Char('\\'));
+ ++i;
+ }
+
+ verify(quoted, expected);
+ }
+}
+
+void tst_qregexp::escape_new1()
+{
+ QFETCH(QString, pattern);
+ QFETCH(QString, expected);
+
+ QBENCHMARK {
+ QString quoted;
+ const int count = pattern.count();
+ quoted.reserve(count * 2);
+ const QLatin1Char backslash('\\');
+ for (int i = 0; i < count; i++) {
+ switch (pattern.at(i).toLatin1()) {
+ case '$':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '.':
+ case '?':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '{':
+ case '|':
+ case '}':
+ quoted.append(backslash);
+ }
+ quoted.append(pattern.at(i));
+ }
+ verify(quoted, expected);
+ }
+}
+
+void tst_qregexp::escape_new2()
+{
+ QFETCH(QString, pattern);
+ QFETCH(QString, expected);
+
+ QBENCHMARK {
+ int count = pattern.count();
+ const QLatin1Char backslash('\\');
+ QString quoted(count * 2, backslash);
+ const QChar *patternData = pattern.data();
+ QChar *quotedData = quoted.data();
+ int escaped = 0;
+ for ( ; --count >= 0; ++patternData) {
+ const QChar c = *patternData;
+ switch (c.unicode()) {
+ case '$':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '.':
+ case '?':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '{':
+ case '|':
+ case '}':
+ ++escaped;
+ ++quotedData;
+ }
+ *quotedData = c;
+ ++quotedData;
+ }
+ quoted.resize(pattern.size() + escaped);
+
+ verify(quoted, expected);
+ }
+}
+
+void tst_qregexp::escape_new3()
+{
+ QFETCH(QString, pattern);
+ QFETCH(QString, expected);
+
+ QBENCHMARK {
+ QString quoted;
+ const int count = pattern.count();
+ quoted.reserve(count * 2);
+ const QLatin1Char backslash('\\');
+ for (int i = 0; i < count; i++) {
+ switch (pattern.at(i).toLatin1()) {
+ case '$':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '.':
+ case '?':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '{':
+ case '|':
+ case '}':
+ quoted += backslash;
+ }
+ quoted += pattern.at(i);
+ }
+
+ verify(quoted, expected);
+ }
+}
+
+
+static inline bool needsEscaping(int c)
+{
+ switch (c) {
+ case '$':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '.':
+ case '?':
+ case '[':
+ case '\\':
+ case ']':
+ case '^':
+ case '{':
+ case '|':
+ case '}':
+ return true;
+ }
+ return false;
+}
+
+void tst_qregexp::escape_new4()
+{
+ QFETCH(QString, pattern);
+ QFETCH(QString, expected);
+
+ QBENCHMARK {
+ const int n = pattern.size();
+ const QChar *patternData = pattern.data();
+ // try to prevent copy if no escape is needed
+ int i = 0;
+ for (int i = 0; i != n; ++i) {
+ const QChar c = patternData[i];
+ if (needsEscaping(c.unicode()))
+ break;
+ }
+ if (i == n) {
+ verify(pattern, expected);
+ // no escaping needed, "return pattern" should be done here.
+ return;
+ }
+ const QLatin1Char backslash('\\');
+ QString quoted(n * 2, backslash);
+ QChar *quotedData = quoted.data();
+ for (int j = 0; j != i; ++j)
+ *quotedData++ = *patternData++;
+ int escaped = 0;
+ for (; i != n; ++i) {
+ const QChar c = *patternData;
+ if (needsEscaping(c.unicode())) {
+ ++escaped;
+ ++quotedData;
+ }
+ *quotedData = c;
+ ++quotedData;
+ ++patternData;
+ }
+ quoted.resize(n + escaped);
+ verify(quoted, expected);
+ // "return quoted"
+ }
+}
+
+
+void tst_qregexp::simpleFind1()
+{
+ int roff;
+ QRegExp rx("happy");
+ rx.setPatternSyntax(QRegExp::RegExp);
+ QBENCHMARK{
+ roff = rx.indexIn(str1);
+ }
+ QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplace1()
+{
+ QString r;
+ QRegExp rx("[a-f]");
+ rx.setPatternSyntax(QRegExp::RegExp);
+ QBENCHMARK{
+ r = QString(str1).replace(rx, "-");
+ }
+ QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplace1()
+{
+ QString r;
+ QRegExp rx("[^a-f]*([a-f]+)[^a-f]*");
+ rx.setPatternSyntax(QRegExp::RegExp);
+ QBENCHMARK{
+ r = QString(str1).replace(rx, "\\1");
+ }
+ QCOMPARE(r, QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplace1()
+{
+ QString r;
+ QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*");
+ rx.setPatternSyntax(QRegExp::RegExp);
+ QBENCHMARK{
+ r = QString(str2).replace(rx, "\\1.\\2.\\3");
+ }
+ QCOMPARE(r, str2);
+}
+
+void tst_qregexp::horribleReplace1()
+{
+ QString r;
+ QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*");
+ rx.setPatternSyntax(QRegExp::RegExp);
+ QBENCHMARK{
+ r = QString(str2).replace(rx, "\\1.\\2.\\3");
+ }
+ QCOMPARE(r, QString("1.2.3"));
+}
+
+
+void tst_qregexp::simpleFind2()
+{
+ int roff;
+ QRegExp rx("happy");
+ rx.setPatternSyntax(QRegExp::RegExp2);
+ QBENCHMARK{
+ roff = rx.indexIn(str1);
+ }
+ QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplace2()
+{
+ QString r;
+ QRegExp rx("[a-f]");
+ rx.setPatternSyntax(QRegExp::RegExp2);
+ QBENCHMARK{
+ r = QString(str1).replace(rx, "-");
+ }
+ QCOMPARE(r, QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplace2()
+{
+ QString r;
+ QRegExp rx("[^a-f]*([a-f]+)[^a-f]*");
+ rx.setPatternSyntax(QRegExp::RegExp2);
+ QBENCHMARK{
+ r = QString(str1).replace(rx, "\\1");
+ }
+ QCOMPARE(r, QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplace2()
+{
+ QString r;
+ QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*");
+ rx.setPatternSyntax(QRegExp::RegExp2);
+ QBENCHMARK{
+ r = QString(str2).replace(rx, "\\1.\\2.\\3");
+ }
+ QCOMPARE(r, str2);
+}
+
+void tst_qregexp::horribleReplace2()
+{
+ QString r;
+ QRegExp rx(".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*");
+ rx.setPatternSyntax(QRegExp::RegExp2);
+ QBENCHMARK{
+ r = QString(str2).replace(rx, "\\1.\\2.\\3");
+ }
+ QCOMPARE(r, QString("1.2.3"));
+}
+
+
+void tst_qregexp::simpleFindJSC()
+{
+ int numr;
+ const char * errmsg=" ";
+ QString rxs("happy");
+ JSRegExp *rx = jsRegExpCompile(rxs.utf16(), rxs.length(), JSRegExpDoNotIgnoreCase, JSRegExpSingleLine, 0, &errmsg);
+ QVERIFY(rx != 0);
+ QString s(str1);
+ int offsetVector[3];
+ QBENCHMARK{
+ numr = jsRegExpExecute(rx, s.utf16(), s.length(), 0, offsetVector, 3);
+ }
+ jsRegExpFree(rx);
+ QCOMPARE(numr, 1);
+ QCOMPARE(offsetVector[0], 11);
+}
+
+void tst_qregexp::rangeReplaceJSC()
+{
+ QScriptValue r;
+ QScriptEngine engine;
+ engine.globalObject().setProperty("s", str1);
+ QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[a-f]/g, '-') } )");
+ QVERIFY(replaceFunc.isFunction());
+ QBENCHMARK{
+ r = replaceFunc.call(QScriptValue());
+ }
+ QCOMPARE(r.toString(), QString("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplaceJSC()
+{
+ QScriptValue r;
+ QScriptEngine engine;
+ engine.globalObject().setProperty("s", str1);
+ QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/[^a-f]*([a-f]+)[^a-f]*/g, '$1') } )");
+ QVERIFY(replaceFunc.isFunction());
+ QBENCHMARK{
+ r = replaceFunc.call(QScriptValue());
+ }
+ QCOMPARE(r.toString(), QString("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplaceJSC()
+{
+ QScriptValue r;
+ QScriptEngine engine;
+ engine.globalObject().setProperty("s", str2);
+ QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*/gm, '$1.$2.$3') } )");
+ QVERIFY(replaceFunc.isFunction());
+ QBENCHMARK{
+ r = replaceFunc.call(QScriptValue());
+ }
+ QCOMPARE(r.toString(), str2);
+}
+
+void tst_qregexp::horribleReplaceJSC()
+{
+ QScriptValue r;
+ QScriptEngine engine;
+ // the m flag doesnt actually work here; dunno
+ engine.globalObject().setProperty("s", str2.replace('\n', ' '));
+ QScriptValue replaceFunc = engine.evaluate("(function() { return s.replace(/.*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*/gm, '$1.$2.$3') } )");
+ QVERIFY(replaceFunc.isFunction());
+ QBENCHMARK{
+ r = replaceFunc.call(QScriptValue());
+ }
+ QCOMPARE(r.toString(), QString("1.2.3"));
+}
+
+
+#ifdef HAVE_BOOST
+void tst_qregexp::simpleFindBoost(){
+ int roff;
+ boost::regex rx ("happy", boost::regex_constants::perl);
+ std::string s = str1.toStdString();
+ std::string::const_iterator start, end;
+ start = s.begin();
+ end = s.end();
+ boost::match_flag_type flags = boost::match_default;
+ QBENCHMARK{
+ boost::match_results<std::string::const_iterator> what;
+ regex_search(start, end, what, rx, flags);
+ roff = (what[0].first)-start;
+ }
+ QCOMPARE(roff, 11);
+}
+
+void tst_qregexp::rangeReplaceBoost()
+{
+ boost::regex pattern ("[a-f]", boost::regex_constants::perl);
+ std::string s = str1.toStdString();
+ std::string r;
+ QBENCHMARK{
+ r = boost::regex_replace (s, pattern, "-");
+ }
+ QCOMPARE(r, std::string("W- -r- -ll h-ppy monk-ys"));
+}
+
+void tst_qregexp::matchReplaceBoost()
+{
+ boost::regex pattern ("[^a-f]*([a-f]+)[^a-f]*",boost::regex_constants::perl);
+ std::string s = str1.toStdString();
+ std::string r;
+ QBENCHMARK{
+ r = boost::regex_replace (s, pattern, "$1");
+ }
+ QCOMPARE(r, std::string("eaeaae"));
+}
+
+void tst_qregexp::horribleWrongReplaceBoost()
+{
+ boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+)\".*", boost::regex_constants::perl);
+ std::string s = str2.toStdString();
+ std::string r;
+ QBENCHMARK{
+ r = boost::regex_replace (s, pattern, "$1.$2.$3");
+ }
+ QCOMPARE(r, s);
+}
+
+void tst_qregexp::horribleReplaceBoost()
+{
+ boost::regex pattern (".*#""define ZLIB_VERSION \"([0-9]+)\\.([0-9]+)\\.([0-9]+).*", boost::regex_constants::perl);
+ std::string s = str2.toStdString();
+ std::string r;
+ QBENCHMARK{
+ r = boost::regex_replace (s, pattern, "$1.$2.$3");
+ }
+ QCOMPARE(r, std::string("1.2.3"));
+}
+#endif //HAVE_BOOST
+
+QTEST_MAIN(tst_qregexp)
+
+#include "main.moc"
diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.pro b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
new file mode 100644
index 0000000000..ffdad12cef
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.pro
@@ -0,0 +1,21 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qregexp
+DEPENDPATH += .
+INCLUDEPATH += .
+RESOURCES+=qregexp.qrc
+QT -= gui
+QT += script
+
+CONFIG += release
+
+# Input
+SOURCES += main.cpp
+
+include( $${QT_SOURCE_TREE}/src/3rdparty/webkit/JavaScriptCore/JavaScriptCore.pri )
+
+exists( /usr/include/boost/regex.hpp ){
+DEFINES+=HAVE_BOOST
+LIBS+=-lboost_regex
+}
+
diff --git a/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc
new file mode 100644
index 0000000000..a7fe13c035
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qregexp/qregexp.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>main.cpp</file>
+</qresource>
+</RCC>
+
diff --git a/tests/benchmarks/corelib/tools/qstring/data.cpp b/tests/benchmarks/corelib/tools/qstring/data.cpp
new file mode 100644
index 0000000000..d44a796e52
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qstring/data.cpp
@@ -0,0 +1,1281 @@
+// This is a generated file - DO NOT EDIT
+
+#include "data.h"
+
+const ushort stringCollectionData[] __attribute__((aligned(16))) = {
+ // #0
+ 65535,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535,65534,65533,65532,65531, // 24
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 48
+
+ // #1
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 118, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 72
+ 65535,65534,65533,65532,65531,
+ 67, 111, 109, 112, 105, 108, 101, 114, 32, 86, 101, 114, 115, 105, 111, 110, 115, 47,
+ 65535, // 96
+
+ // #2
+ 65535,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533, // 120
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 152
+
+ // #3
+ 65535,65534,65533,65532,65531,
+ 99, 111, 109, 112, 105, 108, 101, 114, 32, 116, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 184
+ 65535,
+ 67, 111, 109, 112, 105, 108, 101, 114, 32, 84, 105, 109, 101, 115, 116, 97, 109, 112, 115, 47,
+ 65535,65534,65533, // 208
+
+ // #4
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 280+
+
+
+ // #5
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 352+
+ 65535,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 408+
+
+ // #6
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 472+
+
+
+ // #7
+ 65535,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532, // 496
+ 65535,65534,65533,65532,65531,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 528
+
+ // #8
+ 65535,65534,65533,65532,65531,
+ 97, 114, 99, 104, 105, 118, 101, 100, 32, 99, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 560
+ 65535,65534,65533,65532,65531,
+ 65, 114, 99, 104, 105, 118, 101, 100, 32, 67, 111, 109, 112, 105, 108, 101, 114, 115, 47,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 592
+
+ // #9
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,65522,65521,65520,65519,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532, // 664+
+ 65535,65534,65533,65532,65531,65530,65529,65528,65527,65526,65525,65524,65523,
+ 47, 118, 97, 114, 47, 116, 109, 112, 47, 116, 101, 97, 109, 98, 117, 105, 108, 100, 101, 114, 45, 116, 109, 97, 99, 105, 101, 105, 114, 47, 99, 108, 105, 101, 110, 116, 47, 99, 111, 109, 112, 105, 108, 101, 114, 115, 46, 99, 111, 110, 102,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 736+
+
+ // #10
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 752
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 760
+
+ // #11
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 776
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 792
+
+ // #12
+ 65535,
+ 105, 99, 99,
+ 65535,65534,65533,65532, // 800
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 816
+
+ // #13
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 824
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 832
+
+ // #14
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 840
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 856
+
+ // #15
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 864
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 872
+
+ // #16
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 880
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 896
+
+ // #17
+ 65535,
+ 103, 99, 99,
+ 65535,65534,65533,65532, // 904
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 920
+
+ // #18
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 936
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 944
+
+ // #19
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 960
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 976
+
+ // #20
+ 65535,
+ 103, 43, 43,
+ 65535,65534,65533,65532, // 984
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1000
+
+ // #21
+ 65535,65534,65533,65532,65531,
+ 52, 46, 52, 46, 51,
+ 65535,65534,65533,65532,65531,65530, // 1016
+ 65535,65534,65533,65532,65531,
+ 52, 46, 52, 46, 51,
+ 65535,65534,65533,65532,65531,65530, // 1032
+
+ // #22
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1040
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1048
+
+ // #23
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1064
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1080
+
+ // #24
+ 65535,
+ 47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+ 65535,65534,65533, // 1096
+ 65535,
+ 47, 117, 115, 114, 47, 98, 105, 110, 47, 103, 43, 43,
+ 65535,65534,65533, // 1112
+
+ // #25
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1120
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1128
+
+ // #26
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 1136
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1152
+
+ // #27
+ 65535,
+ 105, 99, 99,
+ 65535,65534,65533,65532, // 1160
+ 65535,65534,65533,65532,65531,
+ 103, 43, 43,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1176
+
+ // #28
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1184
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1192
+
+ // #29
+ 65535,
+ 105, 51, 56, 54,
+ 65535,65534,65533, // 1200
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1216
+
+ // #30
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 1232
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1240
+
+ // #31
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1256
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1272
+
+ // #32
+ 65535,65534,65533,65532,65531,
+ 76, 105, 110, 117, 120,
+ 65535,65534,65533,65532,65531,65530, // 1288
+ 65535,
+ 76, 105, 110, 117, 120,
+ 65535,65534, // 1296
+
+ // #33
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1312
+ 65535,65534,65533,65532,65531,
+ 105, 51, 56, 54,
+ 65535,65534,65533,65532,65531,65530,65529, // 1328
+
+ // #34
+ 65535,
+ 45, 109, 97, 114, 99, 104, 61, 99, 111, 114, 101, 50,
+ 65535,65534,65533, // 1344
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1360
+
+ // #35
+ 65535,65534,65533,65532,65531,
+ 45, 102, 108, 111, 111, 112, 45, 98, 108, 111, 99, 107,
+ 65535,65534,65533,65532,65531,65530,65529, // 1384
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1400
+
+ // #36
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 1424
+ 65535,
+ 116, 98, 51, 54, 57, 54, 56, 95, 50, 46, 105, 105,
+ 65535,65534,65533, // 1440
+
+ // #37
+ 65535,65534,65533,65532,65531,
+ 45, 109, 115, 115, 101, 52,
+ 65535,65534,65533,65532,65531, // 1456
+ 65535,65534,65533,65532,65531,
+ 108, 101, 110, 103, 116, 104,
+ 65535,65534,65533,65532,65531, // 1472
+
+ // #38
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1496
+ 65535,65534,65533,65532,65531,
+ 116, 98, 51, 54, 57, 54, 56, 95, 49, 46, 111,
+ 65535,65534,65533,65532,65531,65530,65529,65528, // 1520
+
+ // #39
+ 65535,65534,65533,65532,65531,
+ 68, 69, 83, 75, 84, 79, 80, 95, 83, 69, 83, 83,
+ 65535,65534,65533,65532,65531,65530,65529, // 1544
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1560
+
+ // #40
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 83, 79, 85, 82, 67, 69, 68, 61, 49,
+ 65535,65534,65533,65532,65531,65530,65529, // 1584
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1600
+
+ // #41
+ 65535,65534,65533,65532,65531,
+ 81, 84, 68, 73, 82, 61, 47, 104, 111, 109, 101, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 1624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1640
+
+ // #42
+ 65535,
+ 76, 67, 95, 67, 84, 89, 80, 69, 61, 112, 116, 95,
+ 65535,65534,65533, // 1656
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1672
+
+ // #43
+ 65535,
+ 71, 84, 75, 95, 82, 67, 95, 70, 73, 76, 69, 83,
+ 65535,65534,65533, // 1688
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1704
+
+ // #44
+ 65535,
+ 88, 77, 79, 68, 73, 70, 73, 69, 82, 83, 61, 64,
+ 65535,65534,65533, // 1720
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1736
+
+ // #45
+ 65535,
+ 83, 72, 69, 76, 76, 61, 47, 98, 105, 110, 47, 122,
+ 65535,65534,65533, // 1752
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1768
+
+ // #46
+ 65535,65534,65533,65532,65531,
+ 85, 61, 64, 123, 117, 112, 115, 116, 114, 101, 97, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 1792
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1808
+
+ // #47
+ 65535,
+ 95, 61, 47, 117, 115, 114, 47, 98, 105, 110, 47, 105,
+ 65535,65534,65533, // 1824
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1840
+
+ // #48
+ 65535,
+ 88, 68, 71, 95, 67, 79, 78, 70, 73, 71, 95, 68,
+ 65535,65534,65533, // 1856
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1872
+
+ // #49
+ 65535,65534,65533,65532,65531,
+ 83, 65, 86, 69, 72, 73, 83, 84, 61, 49, 48, 48,
+ 65535,65534,65533,65532,65531,65530,65529, // 1896
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1912
+
+ // #50
+ 65535,
+ 75, 68, 69, 95, 77, 85, 76, 84, 73, 72, 69, 65,
+ 65535,65534,65533, // 1928
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1944
+
+ // #51
+ 65535,65534,65533,65532,65531,
+ 77, 65, 76, 76, 79, 67, 95, 67, 72, 69, 67, 75,
+ 65535,65534,65533,65532,65531,65530,65529, // 1968
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 1984
+
+ // #52
+ 65535,65534,65533,65532,65531,
+ 72, 73, 83, 84, 67, 79, 78, 84, 82, 79, 76, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2008
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2024
+
+ // #53
+ 65535,65534,65533,65532,65531,
+ 88, 68, 71, 95, 68, 65, 84, 65, 95, 68, 73, 82,
+ 65535,65534,65533,65532,65531,65530,65529, // 2048
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2064
+
+ // #54
+ 65535,65534,65533,65532,65531,
+ 88, 68, 77, 95, 77, 65, 78, 65, 71, 69, 68, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2088
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2104
+
+ // #55
+ 65535,
+ 76, 67, 95, 67, 79, 76, 76, 65, 84, 69, 61, 112,
+ 65535,65534,65533, // 2120
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2136
+
+ // #56
+ 65535,
+ 81, 84, 95, 80, 76, 85, 71, 73, 78, 95, 80, 65,
+ 65535,65534,65533, // 2152
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2168
+
+ // #57
+ 65535,
+ 83, 67, 82, 69, 69, 78, 68, 73, 82, 61, 47, 104,
+ 65535,65534,65533, // 2184
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2200
+
+ // #58
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 79, 80, 69, 78, 61, 124, 47, 117,
+ 65535,65534,65533,65532,65531,65530,65529, // 2224
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2240
+
+ // #59
+ 65535,
+ 76, 67, 95, 78, 65, 77, 69, 61, 110, 98, 95, 78,
+ 65535,65534,65533, // 2256
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2272
+
+ // #60
+ 65535,65534,65533,65532,65531,
+ 80, 52, 67, 76, 73, 69, 78, 84, 61, 116, 109, 97,
+ 65535,65534,65533,65532,65531,65530,65529, // 2296
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2312
+
+ // #61
+ 65535,
+ 80, 65, 84, 72, 61, 47, 104, 111, 109, 101, 47, 116,
+ 65535,65534,65533, // 2328
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2344
+
+ // #62
+ 65535,65534,65533,65532,65531,
+ 71, 80, 71, 95, 65, 71, 69, 78, 84, 95, 73, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 2368
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2384
+
+ // #63
+ 65535,65534,65533,65532,65531,
+ 88, 67, 85, 82, 83, 79, 82, 95, 84, 72, 69, 77,
+ 65535,65534,65533,65532,65531,65530,65529, // 2408
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2424
+
+ // #64
+ 65535,65534,65533,65532,65531,
+ 83, 69, 83, 83, 73, 79, 78, 95, 77, 65, 78, 65,
+ 65535,65534,65533,65532,65531,65530,65529, // 2448
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2464
+
+ // #65
+ 65535,
+ 81, 84, 83, 82, 67, 68, 73, 82, 61, 47, 104, 111,
+ 65535,65534,65533, // 2480
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2496
+
+ // #66
+ 65535,65534,65533,65532,65531,
+ 87, 73, 78, 68, 79, 87, 73, 68, 61, 52, 54, 49,
+ 65535,65534,65533,65532,65531,65530,65529, // 2520
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2536
+
+ // #67
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 77, 69, 83, 83, 65, 71, 69, 83, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 2560
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2576
+
+ // #68
+ 65535,
+ 76, 67, 95, 78, 85, 77, 69, 82, 73, 67, 61, 110,
+ 65535,65534,65533, // 2592
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2608
+
+ // #69
+ 65535,
+ 71, 84, 75, 50, 95, 82, 67, 95, 70, 73, 76, 69,
+ 65535,65534,65533, // 2624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2640
+
+ // #70
+ 65535,
+ 80, 82, 79, 70, 73, 76, 69, 72, 79, 77, 69, 61,
+ 65535,65534,65533, // 2656
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2672
+
+ // #71
+ 65535,65534,65533,65532,65531,
+ 68, 77, 95, 67, 79, 78, 84, 82, 79, 76, 61, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 2696
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2712
+
+ // #72
+ 65535,
+ 76, 83, 95, 67, 79, 76, 79, 82, 83, 61, 114, 115,
+ 65535,65534,65533, // 2728
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2744
+
+ // #73
+ 65535,65534,65533,65532,65531,
+ 83, 83, 72, 95, 65, 85, 84, 72, 95, 83, 79, 67,
+ 65535,65534,65533,65532,65531,65530,65529, // 2768
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2784
+
+ // #74
+ 65535,65534,65533,65532,65531,
+ 75, 68, 69, 68, 73, 82, 83, 61, 47, 104, 111, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 2808
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2824
+
+ // #75
+ 65535,65534,65533,65532,65531,
+ 76, 68, 95, 80, 82, 69, 76, 79, 65, 68, 61, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 2848
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2864
+
+ // #76
+ 65535,65534,65533,65532,65531,
+ 88, 67, 85, 82, 83, 79, 82, 95, 80, 65, 84, 72,
+ 65535,65534,65533,65532,65531,65530,65529, // 2888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2904
+
+ // #77
+ 65535,
+ 115, 114, 99, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 2920
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2936
+
+ // #78
+ 65535,65534,65533,65532,65531,
+ 72, 79, 77, 69, 61, 47, 104, 111, 109, 101, 47, 116,
+ 65535,65534,65533,65532,65531,65530,65529, // 2960
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 2976
+
+ // #79
+ 65535,
+ 81, 84, 52, 68, 79, 67, 68, 73, 82, 61, 47, 117,
+ 65535,65534,65533, // 2992
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3008
+
+ // #80
+ 65535,65534,65533,65532,65531,
+ 80, 87, 68, 61, 47, 104, 111, 109, 101, 47, 116, 109,
+ 65535,65534,65533,65532,65531,65530,65529, // 3032
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3048
+
+ // #81
+ 65535,65534,65533,65532,65531,
+ 75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 3072
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3088
+
+ // #82
+ 65535,
+ 73, 78, 83, 73, 68, 69, 95, 83, 80, 69, 67, 73,
+ 65535,65534,65533, // 3104
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3120
+
+ // #83
+ 65535,
+ 83, 83, 72, 95, 65, 71, 69, 78, 84, 95, 80, 73,
+ 65535,65534,65533, // 3136
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3152
+
+ // #84
+ 65535,
+ 80, 75, 71, 95, 67, 79, 78, 70, 73, 71, 95, 80,
+ 65535,65534,65533, // 3168
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3184
+
+ // #85
+ 65535,65534,65533,65532,65531,
+ 68, 66, 85, 83, 95, 83, 69, 83, 83, 73, 79, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 3208
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3224
+
+ // #86
+ 65535,
+ 76, 68, 95, 76, 73, 66, 82, 65, 82, 89, 95, 80,
+ 65535,65534,65533, // 3240
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3256
+
+ // #87
+ 65535,65534,65533,65532,65531,
+ 80, 52, 85, 83, 69, 82, 61, 116, 106, 109, 97, 99,
+ 65535,65534,65533,65532,65531,65530,65529, // 3280
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3296
+
+ // #88
+ 65535,65534,65533,65532,65531,
+ 81, 84, 69, 83, 84, 95, 67, 79, 76, 79, 82, 69,
+ 65535,65534,65533,65532,65531,65530,65529, // 3320
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3336
+
+ // #89
+ 65535,65534,65533,65532,65531,
+ 88, 68, 71, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 3360
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3376
+
+ // #90
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 75, 69, 89, 61, 47, 101, 116, 99,
+ 65535,65534,65533,65532,65531,65530,65529, // 3400
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3416
+
+ // #91
+ 65535,
+ 76, 79, 71, 78, 65, 77, 69, 61, 116, 109, 97, 99,
+ 65535,65534,65533, // 3432
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3448
+
+ // #92
+ 65535,
+ 71, 95, 70, 73, 76, 69, 78, 65, 77, 69, 95, 69,
+ 65535,65534,65533, // 3464
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3480
+
+ // #93
+ 65535,
+ 75, 68, 69, 95, 70, 85, 76, 76, 95, 83, 69, 83,
+ 65535,65534,65533, // 3496
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3512
+
+ // #94
+ 65535,65534,65533,65532,65531,
+ 72, 79, 83, 84, 78, 65, 77, 69, 61, 108, 111, 116,
+ 65535,65534,65533,65532,65531,65530,65529, // 3536
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3552
+
+ // #95
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 84, 73, 77, 69, 61, 112, 116, 95, 66,
+ 65535,65534,65533,65532,65531,65530,65529, // 3576
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3592
+
+ // #96
+ 65535,
+ 83, 83, 72, 95, 65, 83, 75, 80, 65, 83, 83, 61,
+ 65535,65534,65533, // 3608
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3624
+
+ // #97
+ 65535,65534,65533,65532,65531,
+ 72, 73, 83, 84, 70, 73, 76, 69, 61, 47, 104, 111,
+ 65535,65534,65533,65532,65531,65530,65529, // 3648
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3664
+
+ // #98
+ 65535,
+ 75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+ 65535,65534,65533, // 3680
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3696
+
+ // #99
+ 65535,
+ 77, 65, 75, 69, 61, 47, 117, 115, 114, 47, 98, 105,
+ 65535,65534,65533, // 3712
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3728
+
+ // #100
+ 65535,
+ 67, 65, 78, 66, 69, 82, 82, 65, 95, 68, 82, 73,
+ 65535,65534,65533, // 3744
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3760
+
+ // #101
+ 65535,
+ 71, 67, 79, 78, 70, 95, 84, 77, 80, 68, 73, 82,
+ 65535,65534,65533, // 3776
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3792
+
+ // #102
+ 65535,65534,65533,65532,65531,
+ 85, 83, 69, 82, 61, 116, 109, 97, 99, 105, 101, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 3816
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3832
+
+ // #103
+ 65535,
+ 111, 98, 106, 100, 105, 114, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 3848
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3864
+
+ // #104
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 77, 79, 78, 69, 84, 65, 82, 89, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 3888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3904
+
+ // #105
+ 65535,65534,65533,65532,65531,
+ 81, 84, 76, 73, 66, 61, 47, 117, 115, 114, 47, 108,
+ 65535,65534,65533,65532,65531,65530,65529, // 3928
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3944
+
+ // #106
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 84, 69, 76, 69, 80, 72, 79, 78, 69,
+ 65535,65534,65533,65532,65531,65530,65529, // 3968
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 3984
+
+ // #107
+ 65535,
+ 80, 89, 84, 72, 79, 78, 68, 79, 78, 84, 87, 82,
+ 65535,65534,65533, // 4000
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4016
+
+ // #108
+ 65535,65534,65533,65532,65531,
+ 84, 77, 80, 68, 73, 82, 61, 47, 116, 109, 112, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 4040
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4056
+
+ // #109
+ 65535,65534,65533,65532,65531,
+ 65, 82, 77, 76, 77, 68, 95, 76, 73, 67, 69, 78,
+ 65535,65534,65533,65532,65531,65530,65529, // 4080
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4096
+
+ // #110
+ 65535,
+ 80, 89, 84, 72, 79, 78, 80, 65, 84, 72, 61, 47,
+ 65535,65534,65533, // 4112
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4128
+
+ // #111
+ 65535,65534,65533,65532,65531,
+ 77, 65, 75, 69, 70, 76, 65, 71, 83, 61, 119, 32,
+ 65535,65534,65533,65532,65531,65530,65529, // 4152
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4168
+
+ // #112
+ 65535,
+ 77, 70, 76, 65, 71, 83, 61, 45, 119, 32, 45, 45,
+ 65535,65534,65533, // 4184
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4200
+
+ // #113
+ 65535,
+ 77, 65, 73, 76, 61, 47, 118, 97, 114, 47, 115, 112,
+ 65535,65534,65533, // 4216
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4232
+
+ // #114
+ 65535,65534,65533,65532,65531,
+ 83, 72, 69, 76, 76, 95, 83, 69, 83, 83, 73, 79,
+ 65535,65534,65533,65532,65531,65530,65529, // 4256
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4272
+
+ // #115
+ 65535,
+ 75, 68, 69, 68, 73, 82, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533, // 4288
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4304
+
+ // #116
+ 65535,65534,65533,65532,65531,
+ 76, 69, 83, 83, 67, 72, 65, 82, 83, 69, 84, 61,
+ 65535,65534,65533,65532,65531,65530,65529, // 4328
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4344
+
+ // #117
+ 65535,65534,65533,65532,65531,
+ 76, 67, 95, 80, 65, 80, 69, 82, 61, 110, 98, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 4368
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4384
+
+ // #118
+ 65535,
+ 66, 82, 79, 87, 83, 69, 82, 61, 47, 117, 115, 114,
+ 65535,65534,65533, // 4400
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4416
+
+ // #119
+ 65535,
+ 77, 69, 84, 65, 95, 67, 76, 65, 83, 83, 61, 100,
+ 65535,65534,65533, // 4432
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4448
+
+ // #120
+ 65535,65534,65533,65532,65531,
+ 77, 68, 86, 95, 77, 69, 78, 85, 95, 83, 84, 89,
+ 65535,65534,65533,65532,65531,65530,65529, // 4472
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4488
+
+ // #121
+ 65535,65534,65533,65532,65531,
+ 67, 79, 76, 79, 82, 70, 71, 66, 71, 61, 49, 53,
+ 65535,65534,65533,65532,65531,65530,65529, // 4512
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4528
+
+ // #122
+ 65535,65534,65533,65532,65531,
+ 80, 89, 84, 72, 79, 78, 83, 84, 65, 82, 84, 85,
+ 65535,65534,65533,65532,65531,65530,65529, // 4552
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4568
+
+ // #123
+ 65535,
+ 76, 67, 95, 77, 69, 65, 83, 85, 82, 69, 77, 69,
+ 65535,65534,65533, // 4584
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4600
+
+ // #124
+ 65535,65534,65533,65532,65531,
+ 69, 68, 73, 84, 79, 82, 61, 47, 117, 115, 114, 47,
+ 65535,65534,65533,65532,65531,65530,65529, // 4624
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4640
+
+ // #125
+ 65535,65534,65533,65532,65531,
+ 69, 78, 95, 84, 66, 61, 109, 111, 99, 58, 117, 105,
+ 65535,65534,65533,65532,65531,65530,65529, // 4664
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4680
+
+ // #126
+ 65535,
+ 72, 73, 83, 84, 83, 73, 90, 69, 61, 49, 48, 48,
+ 65535,65534,65533, // 4696
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4712
+
+ // #127
+ 65535,65534,65533,65532,65531,
+ 71, 83, 95, 76, 73, 66, 61, 47, 104, 111, 109, 101,
+ 65535,65534,65533,65532,65531,65530,65529, // 4736
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4752
+
+ // #128
+ 65535,65534,65533,65532,65531,
+ 78, 76, 83, 80, 65, 84, 72, 61, 47, 117, 115, 114,
+ 65535,65534,65533,65532,65531,65530,65529, // 4776
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4792
+
+ // #129
+ 65535,65534,65533,65532,65531,
+ 87, 73, 78, 68, 79, 87, 80, 65, 84, 72, 61, 55,
+ 65535,65534,65533,65532,65531,65530,65529, // 4816
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4832
+
+ // #130
+ 65535,65534,65533,65532,65531,
+ 75, 79, 78, 83, 79, 76, 69, 95, 68, 66, 85, 83,
+ 65535,65534,65533,65532,65531,65530,65529, // 4856
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4872
+
+ // #131
+ 65535,
+ 76, 67, 95, 73, 68, 69, 78, 84, 73, 70, 73, 67,
+ 65535,65534,65533, // 4888
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4904
+
+ // #132
+ 65535,
+ 73, 78, 80, 85, 84, 82, 67, 61, 47, 101, 116, 99,
+ 65535,65534,65533, // 4920
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4936
+
+ // #133
+ 65535,65534,65533,65532,65531,
+ 81, 84, 73, 78, 67, 61, 47, 117, 115, 114, 47, 108,
+ 65535,65534,65533,65532,65531,65530,65529, // 4960
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 4976
+
+ // #134
+ 65535,
+ 76, 67, 95, 65, 68, 68, 82, 69, 83, 83, 61, 110,
+ 65535,65534,65533, // 4992
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5008
+
+ // #135
+ 65535,65534,65533,65532,65531,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 95,
+ 65535,65534,65533,65532,65531,65530,65529, // 5032
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5048
+
+ // #136
+ 65535,
+ 76, 65, 78, 71, 61, 112, 116, 95, 66, 82, 46, 85,
+ 65535,65534,65533, // 5064
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5080
+
+ // #137
+ 65535,
+ 80, 52, 80, 79, 82, 84, 61, 112, 52, 46, 116, 114,
+ 65535,65534,65533, // 5096
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5112
+
+ // #138
+ 65535,65534,65533,65532,65531,
+ 80, 73, 76, 79, 84, 80, 79, 82, 84, 61, 117, 115,
+ 65535,65534,65533,65532,65531,65530,65529, // 5136
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5152
+
+ // #139
+ 65535,
+ 75, 68, 69, 95, 83, 69, 83, 83, 73, 79, 78, 95,
+ 65535,65534,65533, // 5168
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5184
+
+ // #140
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5200
+ 65535,
+ 84, 69, 65, 77, 66, 85, 73, 76, 68, 69, 82, 61,
+ 65535,65534,65533, // 5216
+};
+
+const struct StringCollection stringCollection[] = {
+ {18, 1, 29, 3666, 106}, // #0
+ {18, 53, 77, 106, 1978}, // #1
+ {20, 97, 125, 2850, 3210}, // #2
+ {20, 157, 185, 3210, 3138}, // #3
+ {51, 225, 225, 3362, 3362}, // #4
+ {51, 293, 353, 1434, 3362}, // #5
+ {51, 417, 417, 3362, 3362}, // #6
+ {19, 473, 501, 2850, 10}, // #7
+ {19, 533, 565, 10, 442}, // #8
+ {51, 609, 677, 3362, 1434}, // #9
+ {5, 741, 753, 2666, 2066}, // #10
+ {4, 765, 781, 2362, 3930}, // #11
+ {3, 793, 805, 3330, 2138}, // #12
+ {5, 817, 825, 738, 2066}, // #13
+ {4, 833, 845, 434, 3930}, // #14
+ {5, 857, 865, 3842, 2066}, // #15
+ {4, 873, 885, 3538, 3930}, // #16
+ {3, 897, 909, 3330, 2138}, // #17
+ {5, 925, 937, 1898, 2066}, // #18
+ {4, 949, 965, 1594, 3930}, // #19
+ {3, 977, 989, 3330, 2138}, // #20
+ {5, 1005, 1021, 2218, 762}, // #21
+ {5, 1033, 1041, 3346, 2066}, // #22
+ {4, 1053, 1069, 3082, 3930}, // #23
+ {12, 1081, 1097, 2082, 962}, // #24
+ {5, 1113, 1121, 3362, 2066}, // #25
+ {4, 1129, 1141, 322, 3930}, // #26
+ {3, 1153, 1165, 2050, 2138}, // #27
+ {5, 1177, 1185, 1538, 2066}, // #28
+ {4, 1193, 1205, 1234, 3930}, // #29
+ {5, 1221, 1233, 554, 2066}, // #30
+ {4, 1245, 1261, 250, 3930}, // #31
+ {5, 1277, 1289, 2858, 2066}, // #32
+ {4, 1301, 1317, 2554, 3930}, // #33
+ {12, 1329, 1345, 2194, 1762}, // #34
+ {12, 1365, 1385, 2170, 1762}, // #35
+ {12, 1405, 1425, 2314, 1762}, // #36
+ {6, 1445, 1461, 3626, 666}, // #37
+ {11, 1477, 1501, 3882, 842}, // #38
+ {12, 1525, 1545, 1722, 2930}, // #39
+ {12, 1565, 1585, 1914, 2930}, // #40
+ {12, 1605, 1625, 442, 2930}, // #41
+ {12, 1641, 1657, 626, 2930}, // #42
+ {12, 1673, 1689, 946, 2930}, // #43
+ {12, 1705, 1721, 738, 2930}, // #44
+ {12, 1737, 1753, 2066, 2930}, // #45
+ {12, 1773, 1793, 1210, 2930}, // #46
+ {12, 1809, 1825, 1426, 2930}, // #47
+ {12, 1841, 1857, 1650, 2930}, // #48
+ {12, 1877, 1897, 1530, 2930}, // #49
+ {12, 1913, 1929, 1858, 2930}, // #50
+ {12, 1949, 1969, 2106, 2930}, // #51
+ {12, 1989, 2009, 2202, 2930}, // #52
+ {12, 2029, 2049, 2490, 2930}, // #53
+ {12, 2069, 2089, 2794, 2930}, // #54
+ {12, 2105, 2121, 2322, 2930}, // #55
+ {12, 2137, 2153, 2834, 2930}, // #56
+ {12, 2169, 2185, 1266, 2930}, // #57
+ {12, 2205, 2225, 2538, 2930}, // #58
+ {12, 2241, 2257, 2706, 2930}, // #59
+ {12, 2277, 2297, 3402, 2930}, // #60
+ {12, 2313, 2329, 146, 2930}, // #61
+ {12, 2349, 2369, 3690, 2930}, // #62
+ {12, 2389, 2409, 810, 2930}, // #63
+ {12, 2429, 2449, 1178, 2930}, // #64
+ {12, 2465, 2481, 1442, 2930}, // #65
+ {12, 2501, 2521, 3546, 2930}, // #66
+ {12, 2541, 2561, 1930, 2930}, // #67
+ {12, 2577, 2593, 1634, 2930}, // #68
+ {12, 2609, 2625, 1986, 2930}, // #69
+ {12, 2641, 2657, 1970, 2930}, // #70
+ {12, 2677, 2697, 1834, 2930}, // #71
+ {12, 2713, 2729, 1474, 2930}, // #72
+ {12, 2749, 2769, 2250, 2930}, // #73
+ {12, 2789, 2809, 2458, 2930}, // #74
+ {12, 2829, 2849, 2618, 2930}, // #75
+ {12, 2869, 2889, 3066, 2930}, // #76
+ {12, 2905, 2921, 3330, 2930}, // #77
+ {12, 2941, 2961, 1706, 2930}, // #78
+ {12, 2977, 2993, 2802, 2930}, // #79
+ {12, 3013, 3033, 3770, 2930}, // #80
+ {12, 3053, 3073, 3594, 2930}, // #81
+ {12, 3089, 3105, 2, 2930}, // #82
+ {12, 3121, 3137, 2962, 2930}, // #83
+ {12, 3153, 3169, 290, 2930}, // #84
+ {12, 3189, 3209, 794, 2930}, // #85
+ {12, 3225, 3241, 1058, 2930}, // #86
+ {12, 3261, 3281, 2394, 2930}, // #87
+ {12, 3301, 3321, 138, 2930}, // #88
+ {12, 3341, 3361, 1482, 2930}, // #89
+ {12, 3381, 3401, 570, 2930}, // #90
+ {12, 3417, 3433, 674, 2930}, // #91
+ {12, 3449, 3465, 1282, 2930}, // #92
+ {12, 3481, 3497, 1746, 2930}, // #93
+ {12, 3517, 3537, 1866, 2930}, // #94
+ {12, 3557, 3577, 1978, 2930}, // #95
+ {12, 3593, 3609, 3954, 2930}, // #96
+ {12, 3629, 3649, 2570, 2930}, // #97
+ {12, 3665, 3681, 2754, 2930}, // #98
+ {12, 3697, 3713, 3666, 2930}, // #99
+ {12, 3729, 3745, 34, 2930}, // #100
+ {12, 3761, 3777, 2914, 2930}, // #101
+ {12, 3797, 3817, 1194, 2930}, // #102
+ {12, 3833, 3849, 3202, 2930}, // #103
+ {12, 3869, 3889, 3018, 2930}, // #104
+ {12, 3909, 3929, 202, 2930}, // #105
+ {12, 3949, 3969, 3546, 2930}, // #106
+ {12, 3985, 4001, 3682, 2930}, // #107
+ {12, 4021, 4041, 3466, 2930}, // #108
+ {12, 4061, 4081, 4074, 2930}, // #109
+ {12, 4097, 4113, 306, 2930}, // #110
+ {12, 4133, 4153, 634, 2930}, // #111
+ {12, 4169, 4185, 802, 2930}, // #112
+ {12, 4201, 4217, 962, 2930}, // #113
+ {12, 4237, 4257, 1114, 2930}, // #114
+ {12, 4273, 4289, 1250, 2930}, // #115
+ {12, 4309, 4329, 3898, 2930}, // #116
+ {12, 4349, 4369, 1386, 2930}, // #117
+ {12, 4385, 4401, 1586, 2930}, // #118
+ {12, 4417, 4433, 1730, 2930}, // #119
+ {12, 4453, 4473, 1914, 2930}, // #120
+ {12, 4493, 4513, 1498, 2930}, // #121
+ {12, 4533, 4553, 2138, 2930}, // #122
+ {12, 4569, 4585, 2290, 2930}, // #123
+ {12, 4605, 4625, 2426, 2930}, // #124
+ {12, 4645, 4665, 2666, 2930}, // #125
+ {12, 4681, 4697, 2050, 2930}, // #126
+ {12, 4717, 4737, 2874, 2930}, // #127
+ {12, 4757, 4777, 3018, 2930}, // #128
+ {12, 4797, 4817, 1834, 2930}, // #129
+ {12, 4837, 4857, 3178, 2930}, // #130
+ {12, 4873, 4889, 3314, 2930}, // #131
+ {12, 4905, 4921, 2546, 2930}, // #132
+ {12, 4941, 4961, 3546, 2930}, // #133
+ {12, 4977, 4993, 3682, 2930}, // #134
+ {12, 5013, 5033, 3802, 2930}, // #135
+ {12, 5049, 5065, 3922, 2930}, // #136
+ {12, 5081, 5097, 4018, 2930}, // #137
+ {12, 5117, 5137, 42, 2930}, // #138
+ {12, 5153, 5169, 130, 2930}, // #139
+ {12, 5185, 5201, 242, 2930}, // #140
+};
+const int stringCollectionCount = 141;
+const int stringCollectionMaxLen = 51;
+// average comparison length: 12.0922
+// cache-line crosses: 6 (2.1%)
+// alignment histogram:
+// 0xXXX2 = 188 (66.7%) strings, 57 (30.3%) of which same-aligned
+// 0xXXXa = 94 (33.3%) strings, 10 (10.6%) of which same-aligned
+// total = 282 (100%) strings, 67 (23.8%) of which same-aligned
diff --git a/tests/benchmarks/corelib/tools/qstring/data.h b/tests/benchmarks/corelib/tools/qstring/data.h
new file mode 100644
index 0000000000..bd4ff55bd1
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qstring/data.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DATA_H
+#define DATA_H
+
+#include <qglobal.h>
+
+struct StringCollection
+{
+ int len;
+ int offset1, offset2;
+ ushort align1, align2;
+};
+
+extern const ushort stringCollectionData[];
+extern const StringCollection stringCollection[];
+extern const int stringCollectionCount;
+
+struct StringData
+{
+ const int *entries;
+ union {
+ const char *charData;
+ const ushort *ushortData;
+ };
+
+ int entryCount;
+ int maxLength;
+};
+
+#endif // DATA_H
diff --git a/tests/benchmarks/corelib/tools/qstring/fromlatin1.cpp b/tests/benchmarks/corelib/tools/qstring/fromlatin1.cpp
new file mode 100644
index 0000000000..9a44b26505
--- /dev/null
+++ b/tests/benchmarks/corelib/tools/qstring/fromlatin1.cpp
@@ -0,0 +1,43065 @@
+// This is a generated file - DO NOT EDIT
+
+#include "data.h"
+
+static const char charData[] __attribute__((aligned(64))) = {
+ // #0
+ "\377\376\375\374\373\372\371\370\367\366"
+ "org.kde.StatusNotifierWatcher"
+ "\377\376\375\374\373\372\371\370\367" // 48+
+
+ // #1
+ "\377"
+ "|/|"
+ "\377\376\375\374\373\372\371\370\367\366\365\364" // 64
+
+ // #2
+ "\377\376\375\374\373"
+ "$["
+ "\377\376\375\374\373\372\371\370\367" // 80
+
+ // #3
+ "\377\376\375\374\373"
+ "]"
+ "\377\376\375\374\373\372\371\370\367\366" // 96
+
+ // #4
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344\343\342\341\340\337\336\335\334\333\332\331\330"
+ "LC_SCRIPTS"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362" // 160+
+
+ // #5
+ "\377\376\375\374"
+ "en_US"
+ "\377\376\375\374\373\372\371" // 176
+
+ // #6
+ "\377\376"
+ "http://"
+ "\377\376\375\374\373\372\371" // 192
+
+ // #7
+ "\377\376"
+ "kde.org"
+ "\377\376\375\374\373\372\371" // 208
+
+ // #8
+ "\377\376\375\374\373\372\371\370"
+ "tools-report-bug"
+ "\377\376\375\374\373\372\371\370" // 240
+
+ // #9
+ "\377"
+ "/.krcdirs"
+ "\377\376\375\374\373\372" // 256
+
+ // #10
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ ".kde"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361" // 288
+
+ // #11
+ "\377"
+ "/.config/"
+ "\377\376\375\374\373\372" // 304
+
+ // #12
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ "share/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 336
+
+ // #13
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ "share/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 368
+
+ // #14
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ "share/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 400
+
+ // #15
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ "share/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 432
+
+ // #16
+ "\377\376\375\374\373"
+ "/.local/share/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 464
+
+ // #17
+ "\377\376"
+ "lib/"
+ "\377\376\375\374\373\372\371\370\367\366" // 480
+
+ // #18
+ "\377\376\375\374\373"
+ "share/apps"
+ "\377" // 496
+
+ // #19
+ "\377\376\375\374\373"
+ "share/doc/HTML"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 528
+
+ // #20
+ "\377\376\375\374\373\372\371\370\367"
+ "share/icons"
+ "\377\376\375\374\373\372\371\370\367\366\365\364" // 560
+
+ // #21
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344"
+ "share/config"
+ "\377\376\375\374\373\372\371\370" // 608+
+
+ // #22
+ "share/pixmaps"
+ "\377\376\375" // 624
+
+ // #23
+ "\377\376\375"
+ "share/applnk"
+ "\377" // 640
+
+ // #24
+ "\377\376\375\374\373\372"
+ "share/sounds"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362" // 672+
+
+ // #25
+ "\377\376\375\374\373\372\371\370\367\366"
+ "share/locale"
+ "\377\376\375\374\373\372\371\370\367\366" // 704
+
+ // #26
+ "share/kde4/services"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 736
+
+ // #27
+ "\377"
+ "share/kde4/servicetypes"
+ "\377\376\375\374\373\372\371\370" // 768
+
+ // #28
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362"
+ "share/mimelnk"
+ "\377\376\375\374\373" // 800
+
+ // #29
+ "cgi-bin"
+ "\377\376\375\374\373\372\371\370\367" // 816
+
+ // #30
+ "\377\376"
+ "share/wallpapers"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362" // 848
+
+ // #31
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363"
+ "share/templates"
+ "\377\376\375\374" // 880
+
+ // #32
+ "\377"
+ "bin"
+ "\377\376\375\374\373\372\371\370\367\366\365\364" // 896
+
+ // #33
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "%lib/kde4"
+ "\377\376\375\374\373\372\371\370\367\366\365" // 928+
+
+ // #34
+ "%lib/kde4/plugins"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361" // 960
+
+ // #35
+ "\377\376\375\374\373\372\371"
+ "share/config.kcfg"
+ "\377\376\375\374\373\372\371\370" // 992
+
+ // #36
+ "\377\376\375"
+ "share/emoticons"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362" // 1024
+
+ // #37
+ "applications"
+ "\377\376\375\374" // 1040
+
+ // #38
+ "\377\376\375\374\373\372\371\370\367\366"
+ "icons"
+ "\377" // 1056
+
+ // #39
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361"
+ "pixmaps"
+ "\377\376\375\374\373\372\371\370\367\366" // 1088
+
+ // #40
+ "\377\376\375\374"
+ "desktop-directories"
+ "\377\376\375\374\373\372\371\370\367" // 1120
+
+ // #41
+ "\377\376\375\374\373\372\371\370\367"
+ "mime"
+ "\377\376\375" // 1136
+
+ // #42
+ "\377\376"
+ "menus"
+ "\377\376\375\374\373\372\371\370\367" // 1152
+
+ // #43
+ "\377\376\375\374\373\372\371\370\367\366"
+ "autostart"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 1184
+
+ // #44
+ "\377\376\375\374"
+ "kde4/libexec"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360" // 1216
+
+ // #45
+ "\377\376\375\374\373\372\371\370"
+ "lib"
+ "\377\376\375\374\373" // 1232
+
+ // #46
+ "\377\376\375"
+ "/"
+ "\377\376\375\374\373\372\371\370\367\366\365\364" // 1248
+
+ // #47
+ "\377\376\375\374\373\372"
+ "xdgconf-autostart"
+ "\377\376\375\374\373\372\371\370\367" // 1280
+
+ // #48
+ "\377\376\375\374\373\372\371\370"
+ "share/autostart"
+ "\377\376\375\374\373\372\371\370\367" // 1312
+
+ // #49
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "data"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360" // 1344
+
+ // #50
+ "\377\376\375\374"
+ "kdeglobals"
+ "\377\376" // 1360
+
+ // #51
+ "\377\376\375\374\373\372\371\370\367\366"
+ "."
+ "\377\376\375\374\373" // 1376
+
+ // #52
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1392
+
+ // #53
+ "\377\376\375\374\373\372\371\370\367\366"
+ "."
+ "\377\376\375\374\373" // 1408
+
+ // #54
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1424
+
+ // #55
+ "\377"
+ ":/qt/etc/qt.conf"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361" // 1456
+
+ // #56
+ "\377\376\375\374\373\372\371\370"
+ "nb_NO.UTF-8"
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363" // 1488
+
+ // #57
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1504
+
+ // #58
+ "\377\376\375\374\373\372\371\370\367\366\365\364\363\362\361\360\357\356\355\354\353\352\351\350\347\346\345\344\343\342\341\340"
+ "/usr/lib/qt4/plugins:/home/tmacieir/.kde/lib/kde4/plugins/:/home/tmacieir/KDE4/lib/kde4/plugins/:/usr/lib/kde4/plugins/"
+ "\377\376\375\374\373\372\371\370\367" // 1664+
+
+ // #59
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1680
+
+ // #60
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1696
+
+ // #61
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1712
+
+ // #62
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1728
+
+ // #63
+ "\377\376\375\374\373\372\371\370\367\366\365\364"
+ "*"
+ "\377\376\375" // 1744