Qt 6.8.3 with BlackBerry 10 (QNX 8 / ARMv7) patches
 
 
 
 
 
 
Go to file
Lars Knoll 735fd68dac Implement better hash functions for integer types
The hash function provides rather good mixing of the input bits.
It spreads numbers out evenly through the uint range, a change of
one bit in the input changes around half the output bits, and it is
pretty fast.

Using this as a hash function over the simple hash(int) == int has the
advantage that it reduces the amount of collisions for badly distributed
keys. In addition, it allows us to always use power of two sizes for the
hash table, leading to better performance for inserts and lookups.

the 32 and 64 bit hash functions where chosen from
https://nullprogram.com/blog/2018/07/31/. I selected the ones that give
a very good distribution of the hash values while using the integer for
both multiplication steps. This should be slighty faster than using two
different numbers.

While the result is still being cast to a uint, the method is prepared
so it can handle 64 bit keys and seeds.

Fixes: QTBUG-29009
Change-Id: Id7a1b97b3c0d219e65de2e6e1fe6faf092f8ce16
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-02-15 12:15:48 +01:00
bin Add initial support for CMake "Ninja Multi-Config" generator 2020-01-27 11:47:57 +00:00
cmake Merge remote-tracking branch 'origin/wip/cmake' into dev 2020-02-13 23:29:51 +01:00
coin coin: remove contact person for cmake issues 2020-02-13 20:14:12 +01:00
config.tests Add initial support for cross-building to iOS 2019-12-03 13:35:59 +00:00
dist Add changes file for Qt 5.14.1 2020-01-18 14:02:16 +01:00
doc Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
examples Merge "Merge remote-tracking branch 'origin/wip/cmake' into dev" 2020-02-14 14:55:04 +01:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
qmake Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
src Implement better hash functions for integer types 2020-02-15 12:15:48 +01:00
tests Merge "Merge remote-tracking branch 'origin/wip/cmake' into dev" 2020-02-14 14:55:04 +01:00
util Merge remote-tracking branch 'origin/wip/cmake' into dev 2020-02-13 23:29:51 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake 2019-07-11 17:17:51 +02:00
.qmake.conf Bump version 2019-12-17 12:41:31 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt Regenerate rest of qtbase 2020-02-04 18:50:48 +00:00
INSTALL INSTALL: Remove outdated reference to Windows CE 2019-02-13 13:01:57 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.QT-LICENSE-AGREEMENT Update enterprise license agreement v4.2.1 2019-12-18 13:07:19 +02:00
config_help.txt Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
configure Use C++17 for qmake and force the build of everything with C++17 2020-02-08 09:49:07 +01:00
configure.bat Don't compile qmake in c++11 mode 2020-02-03 17:43:30 +01:00
configure.cmake Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
configure.json Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
configure.pri Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
dependencies.yaml Re-add dependencies.yaml so repos outside qt5 can be built with Coin 2019-09-19 17:07:36 +00:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Merge remote-tracking branch 'origin/5.15' into dev 2020-01-04 15:32:34 +01:00