Go to file
Lars Knoll 5cb0368516 Rewrite QMap to use a RB tree
QMap used to use a skiplist in Qt 4.x, which has variable
sized nodes and we can thus not optimise using custom
allocators.

The rewrite now uses a red-black tree, and all allocations
and tree operations happen in the cpp file. This will allow
us to introduce custom allocation schemes in later versions
of Qt.

Added some more tests and a benchmark. Memory consumption
of the new QMap implementation is pretty much the same as before.
Performance of insertion and lookup has increased by 10-30%. iteration
is slower, but still extremely fast and should not matter compared
to the work usually done when iterating.

Change-Id: I8796c0e4b207d01111e2ead7ae55afb464dd88f5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-03-23 09:31:09 +01:00
bin Fix qtmodule-configtests to honor error codes 2012-03-08 23:52:34 +01:00
config.tests arch: Undefine possible architecture defines 2012-03-16 06:12:00 +01:00
dist QMetaMethod::typeName() should return "void" if the return type is void 2012-03-21 18:55:51 +01:00
doc/src QRegularExpression: support for QStringList overloads 2012-03-21 11:43:30 +01:00
examples Got rid of Map / Unmap events in favor of Expose event. 2012-03-22 11:43:36 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Install fonts when not using fontconfig 2012-03-16 21:30:59 +01:00
qmake Merge master into api_changes 2012-03-19 10:03:48 +01:00
src Rewrite QMap to use a RB tree 2012-03-23 09:31:09 +01:00
tests Rewrite QMap to use a RB tree 2012-03-23 09:31:09 +01:00
tools Merge master into api_changes 2012-03-19 10:03:48 +01:00
util clean up qmake-generated projects 2012-02-24 05:18:30 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add bin/qdoc to .gitignore 2012-03-14 09:45:07 +01:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Fix cross-compilation of qdbus bootstrapped tools. 2012-03-20 22:20:25 +01:00
configure.bat Remove Q_BYTE_ORDER and -*-endian arguments from configures 2012-03-02 14:48:00 +01:00
header.BSD Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.FDL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL-ONLY Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
INSTALL Remove Symbian specific code from qtbase. 2012-01-31 07:08:31 +01:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro remove obviously counterproductive uses of QT_SOURCE_TREE & QT_BUILD_TREE 2012-03-08 18:57:13 +01:00
sync.profile Add qprocessordetection.h 2012-02-08 12:33:11 +01:00