qt5base-lts/tests/auto/corelib
João Abecasis fb8be9905d qAllocMore: Always grow exponentially
qAllocMore is used by growing containers to allocate additional memory
for future growth. The previous algorithm would grow linearly in
increments of 8 up to 64 and then progress exponentially in powers of
two.

The new (constant time) algorithm does away with the linear segment and
always progresses exponentially. It also has the nice benefit of cleanly
avoiding undefined behaviour that the old implementation tried hard to
circumvent.

Besides always progressing exponentially, the next-power-of-two
algorithm was tweaked to always include space for growth. Previously
queries at boundary values (powers of two) would return the same value.

The test was updated to verify sanity of results. As the algorithm is
well behaved, testing of bogus data was dropped. Whatever happens in
those cases is irrelevant, anyway: the bug lives elsewhere.

Change-Id: I4def473cce4b438734887084e3c3bd8da0ff466b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-02-17 21:23:06 +01:00
..
animation Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
codecs Move QtConcurrent into its own module 2012-02-05 17:49:16 +01:00
global QtDebug: Include file, line, function information 2012-02-01 02:16:32 +01:00
io Fix QTextStream and QDebug operator<< for QLatin1String 2012-02-02 11:10:04 +01:00
itemmodels tst_qabstractitemmodel does not need QT += widgets 2012-01-31 04:55:47 +01:00
json Update contact address in license headers. 2012-01-31 04:54:56 +01:00
kernel Bring qmetaobjectbuilder in sync with moc 2012-02-03 15:09:03 +01:00
plugin Changed qlibrary unittest to use applicationDirPath() 2012-01-31 04:55:35 +01:00
statemachine Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
thread Move QtConcurrent into its own module 2012-02-05 17:49:16 +01:00
tools qAllocMore: Always grow exponentially 2012-02-17 21:23:06 +01:00
xml Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
corelib.pro Move QtConcurrent into its own module 2012-02-05 17:49:16 +01:00