diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-05-08 11:18:57 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2023-05-15 15:51:00 +0200 |
commit | 7cf7e884171555d13672ceed5ae34434054dd2d9 (patch) | |
tree | b8a2e974766215086341e20fe99022ad3801ab47 | |
parent | 59c686080dfa77be2dbc434b6ff6f362b5a02d25 (diff) | |
download | qtbase-7cf7e884171555d13672ceed5ae34434054dd2d9.tar.gz |
Darwin: Disable QMacAutoReleasePool tracker unless explicitly enabled
There's a few orders of magnitude of overhead using QMacAutoReleasePool
with the tracker enabled, so disable it even for debug builds, unless
explicit auto release pool debugging has been enabled via the environment
variable QT_DARWIN_DEBUG_AUTORELEASEPOOLS.
Pick-to: 6.5
Change-Id: Iec00c703eb21e1914903954cfd02f9f6b1ec2a1f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r-- | src/corelib/kernel/qcore_mac.mm | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/kernel/qcore_mac.mm b/src/corelib/kernel/qcore_mac.mm index 9ef0c0ad1b..d3bb2e7c4f 100644 --- a/src/corelib/kernel/qcore_mac.mm +++ b/src/corelib/kernel/qcore_mac.mm @@ -230,6 +230,10 @@ QMacAutoReleasePool::QMacAutoReleasePool() : pool([[NSAutoreleasePool alloc] init]) { #ifdef QT_DEBUG + static const bool debugAutoReleasePools = qEnvironmentVariableIsSet("QT_DARWIN_DEBUG_AUTORELEASEPOOLS"); + if (!debugAutoReleasePools) + return; + Class trackerClass = [QMacAutoReleasePoolTracker class]; void *poolFrame = nullptr; |