summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2024-04-24 16:35:01 +0200
committerIvan Solovev <ivan.solovev@qt.io>2024-04-26 16:58:24 +0200
commitd849cb80a4ba468e2c6097ebfcab384ddaec8e67 (patch)
tree2889e0382f67fd35215178b20be7b710b81ae019 /src/widgets
parent4709a65d9a065d2339e51118be97724ba61c1b92 (diff)
MSVC: improve QASV(const char(&str)[N]) compilation time
The lengthHelperContainer() implementation for sizeof(Char) == 1 case is using qstrnlen() for the non-constexpr case. qstrnlen() is an inline function which is effectively a nullptr check and a memchr() call. For some reason, on MSVC this combination resulted in very slow compilation for the user projects, where each call to QObject::setObjectName() was hitting this codepath. Fix it by replacing the qstrnlen() call with strnlen_s() for MSVC. It seems that for now all versions of MSVC are affected. However, introduce a new Q_COMPILER_SLOW_QSTRNLEN_COMPILATION definition, which will allow us to check for the compiler version later on. For now this definition is set for all MSVC versions unconditionally. Fixes: QTBUG-124376 Pick-to: 6.7 6.7.1 Change-Id: Id769bef1e950ffa756acf7af39d362fd8b112019 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/widgets')
0 files changed, 0 insertions, 0 deletions