a) don't detach until an occurrence found
b) don't memmove every time an occurrence found
c) truncate quickly )
well, numbers are better than words:
before:
RESULT : tst_QList::removeAll_primitive():
2,617,902 CPU ticks per iteration (total: 261,790,171, iterations: 100)
RESULT : tst_QList::removeAll_movable():
2,547,540 CPU ticks per iteration (total: 254,753,960, iterations: 100)
RESULT : tst_QList::removeAll_complex():
16,852,099 CPU ticks per iteration (total: 1,685,209,906, iterations: 100)
after:
RESULT : tst_QList::removeAll_primitive():
73,520 CPU ticks per iteration (total: 73,520,442, iterations: 1000)
RESULT : tst_QList::removeAll_movable():
90,422 CPU ticks per iteration (total: 90,422,464, iterations: 1000)
RESULT : tst_QList::removeAll_complex():
9,667,073 CPU ticks per iteration (total: 9,667,072,670, iterations: 1000)
Merge-request: 1285
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit b209fe3b1a51f64541067917e96de99f14ad65f3)
Change-Id: Ia26036ed741cefcf4b5868b7b2fc5eae8130d3dc
Reviewed-on: http://codereview.qt-project.org/4577
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
qmake now needs library prefix and extension to be supplied. This was
added to plain win32-g++ in dbbf06e. Now added to win32-g++-cross.
Without this, static libraries get named 'X.lib' instead of 'libX.a'.
Merge-request: 1283
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 8ce9dc02cd5031f26c7fec10484a8c47904c46f5)
Change-Id: Ic12f655bcfc8a422a98819904ec796d896de77f5
Reviewed-on: http://codereview.qt-project.org/4575
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
this was just a merge artifact
(cherry picked from commit 4ac87b7042f7b08e8b427e21d74aa8d224b186bc)
Change-Id: Ifa0638982fe48fda2e8d9aa7ee43029187330f02
Reviewed-on: http://codereview.qt-project.org/4574
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Without this, building OpenVG would fail because Q_OPENVG_EXPORT wasn't
defined at all, causing it to be treated as a variable name
Merge-request: 1256
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 8680ced782c5e225b2e15c50c05493a23410b119)
Change-Id: I0da36af8cdcf411325fad25fa5c4d2ab7764c0ee
Reviewed-on: http://codereview.qt-project.org/4573
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
there is no need to disable stack protector unless one uses an ancient
version of gcc.
taken from kubuntu.
(cherry picked from commit 30211e6847007bf375f60f62f5806b05cec810c3)
Change-Id: Idd74823176a63002cc0f6511adc6a981bef79df9
Reviewed-on: http://codereview.qt-project.org/4571
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
as shortcutDestroyed(..) modifies the shortcuts list.
disconnect from shortcutDestroyed() first, or operate on a detach()-ed list
this was uncovered by QList::removaAll() optimization patch.
(cherry picked from commit e95de30977291a251660f72baa84b5ff244711fb)
Change-Id: Ie0b371c54458ce85f4d36430de8080a5e78d8b7f
Reviewed-on: http://codereview.qt-project.org/4585
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Otherwise V8 won't be built (there's a contains()
check in src.pro).
Change-Id: Iba65e85baae1e80800e5ca0da49fde8958dfd659
Reviewed-on: http://codereview.qt-project.org/4524
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
These tests used requires(contains(QT_CONFIG,private_tests)) in their
.pro file, but did not subtract themselves from their parent project
SUBDIRS when private_tests weren't enabled.
In the best case, this wastes a little time as qmake iterates over these
projects which won't be built. In some worse esoteric cases, this may
break compilation or packaging.
Change-Id: I189c108ee9943b15114becf9d6b04f78dbabbe31
Reviewed-on: http://codereview.qt-project.org/4389
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Use the new PCMPESTRM instruction (Parallel CoMPare Explicit-length
STRings with result in a Mask) which is added in SSE4.2 for
facilitating string operations. The "compare ranges" mode allows us to
search for characters outside the Latin 1 range and then use the
SSE4.1 PBLENDVB instruction to replace those with question marks.
Unlike previous SSE compare instructions, the PCMPxSTRx family allows
us to operate on unsigned 16-bit values. This saves us another
parallel add.
Reviewed-By: Samuel Rødal
(cherry picked from commit 45d2d36c9dbcbce403c78838ea52acd1ab111b68)
Change-Id: I0f9d864f9d19c0f0da43ccb6918dc28295074496
Reviewed-on: http://codereview.qt-project.org/4468
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
The new instruction is PBLENDVB, which creates a result by selecting
bytes from one of two registers, depending on whether the mask
contains a 1 (0xff) or a zero.
The SSE2 code requires three instructions (and, andnot, or).
The equivalent Neon instruction is VBSL (bit select).
Reviewed-by: Samuel Rødal
(cherry picked from commit bdad106358ae177d1345f5ff85c0e38cfeb5ca90)
Change-Id: I5b0d055a4be532f81c6f11181d710525cd6c3f25
Reviewed-on: http://codereview.qt-project.org/4466
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Since platform font database will be populated in QFontDatabase::load,
no need to do it here in QFont::initialize.
Change-Id: I1b8c9f6fc9be40e0263ed3951c794141c6297e84
Reviewed-on: http://codereview.qt-project.org/4091
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
QNetworkProxy takes an hostname, not an url.
Change-Id: I7504fbc02a817d6c75ee55dc8bbdd66ec1e6cd01
Reviewed-on: http://codereview.qt-project.org/4373
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
and do not only check leaf certificates, but all intermediates and
the root. Tested manually with the cross-signed intermediates.
Change-Id: I860dc9b568bc244abc9228486dbb374a1a2b47c4
Reviewed-by: Richard J. Moore <rich@kde.org>
(cherry picked from commit 64adbd0c5775f97343afbe0e7b5fde0d70bdaedd)
Reviewed-on: http://codereview.qt.nokia.com/4291
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
After the regexs in qtmodule-tests were fixed in the same commit it is
no longer necessary to explicitly add the include statement. Any
existing content unrelated to config tests is preserved.
Change-Id: I90bab6b838191f050204992aa45262212b937059
Reviewed-on: http://codereview.qt.nokia.com/4296
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
This fixes a few bugs in QML mode name resolution and simplifies
our V8 patchset a little by folding some patches together.
Change-Id: Ia528a43ac8ccad95ac81bcdff5d05aaeab4b48b2
Reviewed-on: http://codereview.qt.nokia.com/4294
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
configure is currently whitelisting a set of architectures which are
known to be capable of building V8. macosx was omitted from this list.
Note that we don't attempt to differentiate between different macosx
architectures; we expect any mac which is capable of building Qt5 at all
is also capable of building V8.
Change-Id: I345f2a446d650cbeb1e2ad81656cdbeea6fa0d9a
Reviewed-on: http://codereview.qt.nokia.com/4293
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
emitCursorPositionChanged won't emit cursorPositionChanged if the
cursor position hasn't changed but that doesn't mean the micro focus
hasn't changed, so emit updateMicroFocus changed when
cursorPositionChanged isn't.
Task-number: QTBUG-21017 QTBUG-21011
Change-Id: Id0b6bd5aed16563b7b5cce643745e453ba4857a5
Reviewed-on: http://codereview.qt.nokia.com/4181
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
First of all, the -v8 option was missing from the set
of "Qt style yes options", so it wasn't even recognized.
Second, when the value is "auto" (the default), v8
should only be enabled if we are building for a supported
architecture. Currently that's i386, x86_64, and arm.
(When cross-compiling, CFG_ARCH will contain the target
architecture, which is what we want to check.)
Third, if -v8 is passed but the architecture isn't
supported, configure should issue an error.
Change-Id: I579597bc0d81c3097ee96a29493f5f8112be7edd
Reviewed-on: http://codereview.qt.nokia.com/4193
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
QPlatformNativeInterface can now contain generic window
properties in a QVariantMap, to facilitate communication
with the compositor and clients for certain platforms.
When window properties change, a signal is emitted from the
respective QPlatformNativeInterface instance. The properties
are intended to be read/writable from both client and server.
Change-Id: I7b42f7910d03c0d309add6c7dbb1c9b66ad22a3f
Reviewed-on: http://codereview.qt.nokia.com/3956
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Pass the filename when creating the logger rather than when commencing
output. This will simplify forthcoming changes for running multiple
loggers.
Change-Id: I563aa97661caf279a5dcccb1321ff3ce4725b332
Reviewed-on: http://codereview.qt.nokia.com/4116
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
QTextControl's word selection will only include a word if the cursor
position is past the mid point of the word. This can make it
difficult to select words near the edges of the screen on touch
devices. For the TextEdit word selection mode select a word ignore
the relative position within a word.
Task-number: QT-5206
Change-Id: I4e5675596cd89934b3c2bc5d825088887c222fe8
Reviewed-by: Martin Jones
Reviewed-on: http://codereview.qt.nokia.com/4166
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Unmask the last character typed, not the last character in the string.
Change-Id: I9c70d2347bf878c18ab0a7f4ea76f755ca19a85c
Task-number: QTBUG-17003
Reviewed-by: Alan Alpert
(cherry picked from commit b98e9e69dd8ba33d5f01b9518d95b63b86c4b443)
Reviewed-on: http://codereview.qt.nokia.com/4165
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Task-number: QTBUG-19109
Reviewed-by: Martin Jones
Change-Id: I709427fe73b2d6ed9e3526af140b9dc375740789
Reviewed-on: http://codereview.qt.nokia.com/4164
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Many applications relied on the undefined behaviour that the
filesystem engines returned clean paths (despite the documentation
stating that they may not), and consequently suffered regressions with
Qt 4.8.
Unix paths are once again cleaned if necessary.
Windows/Symbian paths were already cleaned, but now use the utility
function to check if a path is dirty, to avoid duplicated code.
Task-number: QTBUG-19995
Change-Id: If8c18469f149291c9d079ae3da23bc2087bbd49a
Reviewed-on: http://codereview.qt.nokia.com/4154
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
... to reduce the possibility of blacklisting valid certificates that
happen to have the same serial number as a blacklisted one, which is
unlikely, but possible.
Reviewed-by: Richard J. Moore <rich@kde.org>
(cherry picked from commit 6b1a8129623e3716f2fc075608b260ce7c381fe2
and adapted to the source incompatible change)
Change-Id: If714c34f6ce028032eee6d68f34d088b6ad5a0cc
Reviewed-on: http://codereview.qt.nokia.com/3895
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
The build-key is an old mechanism to work around binary
incompatibilities in GCC 3.x versions. Modern GCC has not broken binary
compatibility since 3.4, making this mechanism obsolete.
The cache value stored now only includes Qt version, the debug/release
boolean, and the last modified time for the plugin. Old 4-value keys
will be replaced with new keys as the plugins are reloaded the first
time.
This also removes QLibraryInfo::buildKey(), which is a source-incompatible
change.
The UNIX and Windows configure tools have been updated to stop
outputting the QT_BUILD_KEY preprocessor directive.
See also:
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000892.html
Change-Id: I7d06969a370d3d2c6de413c1230d9d6789cbf195
Reviewed-on: http://codereview.qt.nokia.com/3977
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
QDir::operator== was creating a clean absolute path for comparison
purposes if the original path was relative.
However original absolute paths were trusted, even though they could
be unclean. Now they are checked for cleanliness first.
Task-Number: QTBUG-19995
Task-Number: QTBUG-20495
Change-Id: I047a1a40ae5151e4604085e4ac87f30a4e4979c4
Reviewed-on: http://codereview.qt.nokia.com/4099
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>