Go to file
Giuseppe D'Angelo ca8fefca85 QCoreApplication::requestPermission: refactor "dead" code
An assert that checks in debug mode is morally equivalent to an
assumption/contract in release mode. Rechecking that an assumption is
true is pointless (it's true by definition), so the code for the case
the check fails is effectively "dead".

Right now Q_ASSERT(x) doesn't turn into Q_ASSUME(x) because some
compilers still have poor codegen (and basically emit a check, even in
release mode). With C++23's [[assume(x)]] we may reconsider that. As
soon as we do it, this code is no longer theoretically dead but
practically dead.

Refactor the code so that the check is done unconditionally, and
if it fails, we assert (in debug mode). In release, we protect users
from a broken backend (which may cause an endless loop of user code
re-requesting the same permission, so it's worth avoiding it).

Change-Id: If0e70e7d88a585ce16ec4838ba7be747652d8155
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-09-06 19:24:40 +02:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Add simple project generation based on existing source files 2023-02-08 12:59:19 +01:00
cmake CMake: Add a helpers file for commands to run in the top-level dir 2023-09-06 17:22:07 +02:00
coin Enable binfmts incase it is disabled 2023-08-31 06:31:36 +00:00
config.tests Remove the mandatory x86-64 features from its feature list 2023-05-31 14:55:37 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Docs: Add a macro for documenting something as a technical preview 2023-08-02 12:47:15 +00:00
examples Doc: Fix qdoc full stop warning in briefs 2023-09-05 21:14:59 +00:00
lib
libexec Remove syncqt.pl 2023-06-30 13:23:46 +02:00
LICENSES Clarify license of SHA-1 algorithm 2023-04-26 16:36:18 +02:00
mkspecs undef READ and WRITE on VxWorks 2023-08-31 22:30:35 +00:00
qmake Doc: Document TR_EXCLUDE 2023-08-25 17:56:28 +02:00
src QCoreApplication::requestPermission: refactor "dead" code 2023-09-06 19:24:40 +02:00
tests QCborValue: add benchmark for operator[] 2023-09-06 16:17:52 +02:00
util Change enumdata.py names so comments read more naturally 2023-08-09 17:53:45 +02:00
.cmake.conf CMake: Require CMake 3.21 when building/using Qt on Apple platforms 2023-06-28 22:09:20 +02:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Add CMakeUserPresets.json to .gitignore 2023-06-23 12:13:08 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag
CMakeLists.txt CMake: Fix find_package(Qt6*Tools) in non-qtbase tests 2023-08-23 16:21:58 +02:00
config_help.txt CMake: remove test for eventfd, replace with __has_include 2023-08-29 07:41:11 -07:00
configure Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.bat Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.cmake CMake: Don't add no-prefix define to qconfig_p.h 2023-09-05 16:33:40 +02:00
dependencies.yaml
qt_cmdline.cmake CMake: Allow installation of example sources into the Qt prefix 2023-08-16 19:04:40 +02:00