diff options
author | Qt by Nokia <qt-info@nokia.com> | 2011-04-27 12:05:43 +0200 |
---|---|---|
committer | axis <qt-info@nokia.com> | 2011-04-27 12:05:43 +0200 |
commit | 38be0d13830efd2d98281c645c3a60afe05ffece (patch) | |
tree | 6ea73f3ec77f7d153333779883e8120f82820abe /tests/benchmarks |
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')
423 files changed, 133776 insertions, 0 deletions
diff --git a/tests/benchmarks/README b/tests/benchmarks/README new file mode 100644 index 0000000000..d437299fee --- /dev/null +++ b/tests/benchmarks/README @@ -0,0 +1,81 @@ +The most reliable way of running benchmarks is to do it in an otherwise idle +system. On a busy system, the results will vary according to the other tasks +demanding attention in the system. + +We have managed to obtain quite reliable results by doing the following on +Linux (and you need root): + + - switching the scheduler to a Real-Time mode + - setting the processor affinity to one single processor + - disabling the other thread of the same core + +This should work rather well for CPU-intensive tasks. A task that is in Real- +Time mode will simply not be preempted by the OS. But if you make OS syscalls, +especially I/O ones, your task will be de-scheduled. Note that this includes +page faults, so if you can, make sure your benchmark's warmup code paths touch +most of the data. + +To do this you need a tool called schedtool (package schedtool), from +http://freequaos.host.sk/schedtool/ + +From this point on, we are using CPU0 for all tasks: + +If you have a Hyperthreaded multi-core processor (Core-i5 and Core-i7), you +have to disable the other thread of the same core as CPU0. To discover which +one it is: + +$ cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list + +This will print something like 0,4, meaning that CPUs 0 and 4 are sibling +threads on the same core. So we'll turn CPU 4 off: + +(as root) +# echo 0 > /sys/devices/system/cpu/cpu4/online + +To turn it back on, echo 1 into the same file. + +To run a task on CPU 0 exclusively, using FIFO RT priority 10, you run the +following: + +(as root) +# schedtool -F -p 10 -a 1 -e ./taskname + +For example: +# schedtool -F -p 10 -a 1 -e ./tst_bench_qstring -tickcounter + +Warning: if your task livelocks or takes far too long to complete, your system +may be unusable for a long time, especially if you don't have other cores to +run stuff on. To prevent that, run it before schedtool and time it. + +You can also limit the CPU time that the task is allowed to take. Run in the +same shell as you'll run schedtool: + +$ ulimit -s 300 +To limit to 300 seconds (5 minutes) + +If your task runs away, it will get a SIGXCPU after consuming 5 minutes of CPU +time (5 minutes running at 100%). + +If your app is multithreaded, you may want to give it more CPUs, like CPU0 and +CPU1 with -a 3 (it's a bitmask). + +For best results, you should disable ALL other cores and threads of the same +processor. The new Core-i7 have one processor with 4 cores, +each core can run 2 threads; the older Mac Pros have two processors with 4 +cores each. So on those Mac Pros, you'd disable cores 1, 2 and 3, while on the +Core-i7, you'll need to disable all other CPUs. + +However, disabling just the sibling thread seems to produce very reliable +results for me already, with variance often below 0.5% (even though there are +some measurable spikes). + +Other things to try: + +Running the benchmark with highest priority, i.e. "sudo nice -19" +usually produces stable results on some machines. If the benchmark also +involves displaying something on the screen (on X11), running it with +"-sync" is a must. Though, in that case the "real" cost is not correct, +but it is useful to discover regressions. + +Also; not many people know about ionice (1) + ionice - get/set program io scheduling class and priority diff --git a/tests/benchmarks/benchmarks.pro b/tests/benchmarks/benchmarks.pro new file mode 100644 index 0000000000..b5e3a4b8b3 --- /dev/null +++ b/tests/benchmarks/benchmarks.pro @@ -0,0 +1,13 @@ +TEMPLATE = subdirs +SUBDIRS = \ + corelib \ + gui \ + network \ + script \ + svg +contains(QT_CONFIG, opengl): SUBDIRS += opengl +contains(QT_CONFIG, declarative): SUBDIRS += declarative +contains(QT_CONFIG, dbus): SUBDIRS += dbus + +check-trusted.CONFIG += recursive +QMAKE_EXTRA_TARGETS += check-trusted 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>("us |