As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.
Task-number: QTBUG-98434
Change-Id: I7fadd3cf27ad099028d70f05956303e3af62c0f5
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Expand the rubberband repaint area with one pixel to account for
rounding on screens with fractional device pixel ratio.
Fixes: QTBUG-102717
Pick-to: 6.3 6.2
Change-Id: Iede638d48dfbc3156b02ada28dfe99719b9d5efa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Since each .arg() call starts from scratch, a file name containing a
suitable %n would mess up the formatting of the following .arg() call.
Fix by using multiArg(), which requires to pre-format the line into a
QString, but which performs only a single-pass, so doesn't suffer from
the placeholder injection problem that plagues .arg()-chaining.
Pick-to: 6.3 6.2 5.15
Change-Id: I549527643da657fca0bea63d5e3becadac529d4b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
... by providing also op>> for char16_t.
[ChangeLog][QtCore][QTextStream] Added op>>(char16_t&).
Change-Id: I2f6cc2b2cdacd5190d364f94c1830f6de62d3b7e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
It's not used and not useful.
Task-number: QTBUG-100861
Pick-to: 6.3 6.2
Change-Id: Ie28d07474ee8fae96b569632d835dbb0ffd0e48f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
... instead of a pair of val and valSeen variables.
More elegant.
Pick-to: 6.3
Change-Id: I0fcf9a3b5611e30fb81d92619993a7828496cd1b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Clazy complains about all uses of QLatin1Char these days, but if one
actually applies the fixit to turn
out << QLatin1Char(' ');
into
out << u' ';
the space is now streamed as an int (20), not as a space.
Fix by providing an explicit char16_t overload.
[ChangeLog][QtCore][QTextStream] Added op<<(char16_t).
[ChangeLog][Important Behavior Changes] QTextStream streams char16_t's
as QChars now instead of outputting the numeric value. If you want to
preserve the old behavior, cast the char16_t to a numeric type, such
as ushort or int, and stream that. This is backwards-compatible.
Pick-to: 6.3
Change-Id: I42d422cdebb27d38ac1714b22ef186642ec407e7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
These debug statements come from the Nokia import and it seems unlikely
that they are being used at all.
Change-Id: I3143f83b0acdc5130fb743808003a55b789f2398
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Required for porting away from QLatin1Char/QLatin1String in scope of
QTBUG-98434.
As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.
Change-Id: Id76add7e86b6dfb89f758a9efb0644067f0f44de
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.
Task-number: QTBUG-98434
Change-Id: I6d4712a71b5ebf3f379f1f98ea476557bce963ef
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Required for porting away from QLatin1Char/QLatin1String in scope of
QTBUG-98434.
As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.
Change-Id: Ib9e01ede4e0d7869fc95414d36f37df4a30b16b4
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Remove unneeded \fn qdoc lines as a drive-by.
Task-number: QTBUG-98434
Change-Id: Id93ddbb38b97a8f5a6734bfbc82686ccb3a87aa6
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
[ChangeLog][QtCore] Deprecated _qs and _qba literal operators
for QString and QByteArray in favor of _s and _ba in the
Qt::Literals::StringLiterals namespace.
Task-number: QTBUG-101408
Change-Id: I26aee0055e3b4c1860de6eda8e0eb857c5b3e11a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Forcing it to black make button look enabled, when it's not true.
Baseline test already covers this scenario (but probably took wrong
snapshot).
Pick-to: 6.3 6.2
Fixes: QTBUG-102782
Change-Id: Ifa9041fbf5bf56a7a560e2d1af291c3db2b134f8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The os_log_create API documents that the logging subsystem will
maintain a global list of logs, and will return existing logs
for subsequent calls for the same category and subsystem, so
we don't need to maintain our own log.
This also avoids a crash were we would end up in the logging
backend during application shutdown, when destructor functions
run, for example via QLibraryStore::cleanup().
In this case local static such as our log cache had already been
destroyed, leading to use after free.
Pick-to: 6.2 6.3 5.15
Change-Id: I91abfef6c56f8ca6dd8d602ac83aa163ce3d6860
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
To avoid any static initialization fiasco when Qt is being used
in a plugin.
Fixes: QTBUG-101150
Pick-to: 6.2 6.3
Change-Id: I68fa03f982d0c07e4b725ed5f4a1f738e0220438
Reviewed-by: <stefan.wastl@native-instruments.de>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This loop here was a lonesome instance of a CAS loop in which adding
_mm_pause() was simple, because the code didn't use the usual pattern
do {
construct new value
} while (!testAndSet)
we use everywhere else in Qt.
In search of an elegant pattern that would allow to apply
qYieldCpu()/_mm_pause() to those idiomatic CAS loops, too, I've
reached for a lambda to construct the new value. This should apply to
all (tight) CAS loops, and may form the basis of an API extension
whereby we take that lambda as a function argument to encapsulate the
CAS loop in an algorithm (a function).
Pick-to: 6.3
Change-Id: Id4a8f174dd812aa26f0b163e943bd4558e5e6a7b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
We were reading from the wrong offset. It just happened to work on Linux
because the values stored in the first and third fields of tcbhead_t[1]
are the same. But that is not the case on FreeBSD for the same thing[2].
Confirmed by disassembly. Linux:
Dump of assembler code for function __GI___pthread_self:
0x00007ffff71b6efe <+0>: endbr64
0x00007ffff71b6f02 <+4>: nop
0x00007ffff71b6f03 <+5>: nop
0x00007ffff71b6f04 <+6>: mov %fs:0x10,%rax
0x00007ffff71b6f0d <+15>: ret
FreeBSD:
(gdb) disass pthread_self
Dump of assembler code for function _Tthr_self:
0x0000000800324790 <+0>: push %rbp
0x0000000800324791 <+1>: mov %rsp,%rbp
0x0000000800324794 <+4>: cmpq $0x0,0x8b1c(%rip) # 0x80032d2b8 <_thr_initial>
0x000000080032479c <+12>: jne 0x8003247a5 <_Tthr_self+21>
0x000000080032479e <+14>: xor %edi,%edi
0x00000008003247a0 <+16>: call 0x80031de40 <_libpthread_init>
0x00000008003247a5 <+21>: mov %fs:0x10,%rax
0x00000008003247ae <+30>: pop %rbp
0x00000008003247af <+31>: ret
Also confirmed not to affect macOS:
(lldb) disass -n pthread_self
libsystem_pthread.dylib`pthread_self:
libsystem_pthread.dylib[0x7ff80032186c] <+0>: pushq %rbp
libsystem_pthread.dylib[0x7ff80032186d] <+1>: movq %rsp, %rbp
libsystem_pthread.dylib[0x7ff800321870] <+4>: movq %gs:0x0, %rax
[1] https://code.woboq.org/userspace/glibc/sysdeps/x86_64/nptl/tls.h.html#tcbhead_t
[2] https://github.com/freebsd/freebsd-src/blob/main/sys/x86/include/tls.h#L43
Pick-to: 6.2 6.3
Fixes: QTBUG-103000
Change-Id: I7fb65b80b7844c8d8f26fffd16ea67d2f3461964
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This is a small wrapper around PAUSE (x86) (and, eventually, YIELD
(ARM) and whatever MIPS and Sparc have for this purpose) instructions
to improve the performance of tight CAS loops.
Pick-to: 6.3
Change-Id: I51e58484c7f02fdbdc491fd1f4a2e9a34f7c2cd0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Says MSVC:
qsimd.cpp(629): warning C4319: '~': zero extending 'QCpuFeatureType' to 'quint64' of greater size
On non-x86 architectures, QCpuFeatureType is just uint32_t, thus
the warning. Fix by casting to quint64 before negating.
Amends 5f7e02efb8.
Change-Id: I1a9451abf79d51c1993b7f6d2a842169a5de7b3c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Like most QPlatformFoo base classes the default implementations are
empty, or have default behavior that should be completely replaced
by subclasses.
By making it consistent across all the platform plugins when we call
base class methods, we avoid confusion of whether a base class call
is needed or not.
Change-Id: Idd8e4a6fa0e24a1dffd21b63471c9b1c2348691f
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
These functions do not push much pressure on memory to warrant separate
pool, and are otherwise called as part of the normal runloop which has
its own pool.
Change-Id: If84a899edc4e8cefbf58ecb55d46848ccd69b33b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
The keys map beyond the Unicode range, so we can't print them as QChar.
Luckily QKeySequence takes care of all of this for us in
QKeySequencePrivate::keyName() via QKeySequence::encodeString().
Pick-to: 6.2 6.3
Change-Id: I822c4f925854e22af5a3b4a7028cb0ed18fb67b2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Following 6323ccfa73, the #if/#elif
chain switching over the Q_PROCESSOR_ values starts with unadorned
defined(Q_PROCESSOR_ARM) now, so the #elif with the same condition at
the end of the chain is dead code.
Change-Id: Ie17041fbf025fd6ef5a817e0c4d66cd300252c8c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: I231a833bb5752b4041c69c909a5bc545e73a61d6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: I60fb8c22a310dfd10cd3611fb603e2175ac6dbcc
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: Ic8ceebfa270d0831a8598f98aa255acfc17e953b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This makes mocs_compilation.cpp empty again, removing those moc files
that were added after the last sweep in 2016,
0e6ad27549.
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: Iee35e82d18690469ad889f9b4a7394e706fe037d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2
Task-number: QTBUG-102886
Change-Id: I625ac4cd59bee6a0a21d6a09c1fc72f726c3c41f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: I1945741794c25679a9d94c0d68c8642e2c823502
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Including moc files directly into their classes' TU tends to improve
codegen and enables extended compiler warnings, e.g. about unused
private functions or fields.
Pick-to: 6.3 6.2 5.15
Task-number: QTBUG-102886
Change-Id: I9d7dca22fed668af1a3f5bfe6c9c2c6b17784254
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>