Commit Graph

26172 Commits

Author SHA1 Message Date
Louai Al-Khanji
3fc1002489 QAndroidEventDispatcher: Remove dependency on select(2)
Change-Id: I4c23816a3a665cf2fa40705efe721b6f43fa3146
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-12-18 02:13:25 +00:00
Tor Arne Vestbø
420438b5d3 iOS: Implement support for QApplication::beep()
Vibrates the device or plays an alert sound on devices
that do not support vibration.

The other implementations of beep() have been moved to
QPlatformIntegration as a proper API instead of having
them as invokables in QPlatformNativeInterface.

Change-Id: Ic597dbef04b46d49862b070e78ddfc0d763829a2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
2015-12-17 17:14:34 +00:00
Marc Mutz
a1bb00bece QScrollerPrivate: fix some const-incorrectnesses
Change-Id: Iad7ea926b90efa54ef94c04ac78e38254d9b5c98
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-17 16:48:31 +00:00
Marc Mutz
46ed6c058a QGraphicsScene: replace QList::prepend()s with appends()
Use the new reverse_iterator support in QList to
avoid building a QList with prepend()ing, using
append() instead.

Change-Id: Ia1f6d0ecc08a824f11d93a6fd4077b11b1b0f786
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-17 16:48:05 +00:00
Marc Mutz
bb7bc4a05e QApplication: replace QList::prepend()s with appends()
Use the new reverse_iterator support in QList to
avoid building a QList with prepend()ing, using
append() instead.

Change-Id: I6b9d9b1a9941cf2e6cc39ad2d9097fdc629c24bc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-17 16:47:59 +00:00
Marc Mutz
404b1fd8b3 QFlickGestureRecognizer: remove a useless check
There's no point in checking isEmpty() to prevent a for loop from
executing, esp. if the checking involves copying the container
and calling an out-of-line function to get said copy.

Just fall through the for loop.

Change-Id: If6c689ff4bcd685bc645b4fb3f2c15ce5d5945af
Reviewed-by: Sérgio Martins <iamsergio@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-17 16:47:48 +00:00
Shawn Rutledge
13e499893c eglfs kms: allow overriding physical display size via env variables
Implement the reading of the QT_QPA_EGLFS_PHYSICAL_WIDTH and
QT_QPA_EGLFS_PHYSICAL_HEIGHT as documented.

Change-Id: I862a03e9d05dcd15fb6a245c93ebd3e028de0c47
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-17 01:12:16 +00:00
Allan Sandfeld Jensen
d290424f2a NEON optimized bilinear sampling
Adds NEON version of interpolate_4_pixels used by smooth upscaling, and
bilinear sampling.

The SSE2 version is reordered to match the NEON version so they have
the same order of operations and a faster version that loads directly
into vector registers.

Testing is extended so we have a test of smoothness that can catch more
possible mistakes.

Change-Id: I0de4aecf5cb79468e7c8f19f421aa24b2955547c
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-12-17 01:11:57 +00:00
Tor Arne Vestbø
3e892e4a97 iOS: Switch backingstore to use raster paint engine, not GL
Now that more of the raster operations are NEON-optimized this should
be acceptable. The switch enables antialiased drawing, and makes iOS
in line with other platforms in having QBackingStore backed by a QImage.

The use of QImage also allows us to remove code from the backingstore
implementation that was only needed to support the composeAndFlush
code path.

The common parts of a raster backingstore implementation have been
factored out into QRasterBackingStore in platformsupport, which can
be shared with more platforms in the future.

[ChangeLog][iOS] QBackingStore now uses the raster paint engine
instead of the OpenGL paint engine, enabling improved antialiased
drawing. In case of performance regressions, the old code path
can be enabled by setting the window's surface type to
QSurface::OpenGLSurface.

Task-number: QTBUG-35271
Change-Id: Ia300b9a5edf8dc0b4bfb99d84ed3c23a8523c267
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-17 01:11:52 +00:00
Marc Mutz
4891fd02c5 QGraphicsAnchorLayout: replace three loops over QHash::keys() with QHash::const_iterator loops
Quite obviously faster (doesn't need to populate a QList first,
just to iterate over it).

Also saves 1.5KiB text on optimized GCC 4.9 Linux AMD64 builds.

Change-Id: If4c7af80165a6027d39359bac22df30e7ca09815
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 17:42:29 +00:00
Marc Mutz
f2d8d9daee QGraphicsAnchorLayout: replace a Q_FOREACH with std::accumulate
Saves ~0.5KiB in text size on optimized Linux AMD64 GCC 4.9 builds.

Change-Id: Iba2c02eed44f1ee3521bc49fe7afae9c2e916fdc
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-16 17:42:21 +00:00
Marc Mutz
2cc2bcca94 QGraphicsAnchorLayout: own includes go first
... to check that they compile stand-alone.

Change-Id: I10f651125c17ea64c631f2bede4332ea71d50a10
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 17:42:13 +00:00
Marc Mutz
d8c996120c QFileDialogPrivate::restoreWidgetState(): use range-erase instead of while pop_front()
Depending on the number of popped arguments, repeated
pop_front()s could turn quadratic even with QList.

Change-Id: I1f29af4a61f0f8e13253807d2f208c7911e71378
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 17:42:02 +00:00
Marc Mutz
0516487237 QtWidgets: replace some index-based for loops with C++11 range-for
This needs to be handled a bit carefully, because Qt containers
will detach upon being iteratoed over using range-for.

In the cases of this patch, that cannot happen, because all
containers are marked as const (either by this patch or before).

Separate patches will deal with other situations.

Apart from being more readable, range-for loops are also the
most efficient for loop.

This patch shaves almost 2K of text size off an optimized Linux
AMD64 GCC 4.9 build.

Change-Id: I53810c7b25420b4fd449d20c90c07503c5e76a66
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 17:41:50 +00:00
Marc Mutz
b697518634 QtWidgets: replace some Q_FOREACH loops with C++11 range-for
This needs to be handled a bit carefully, because Qt containers
will detach upon being iterated over using range-for.

In the cases of this patch, that cannot happen, because all
containers are marked as const (either by this patch or before).

Separate patches will deal with other situations.

Range-for loops are much more efficient than foreach loops.

This patch shaves almost 3K of text size off an optimized Linux
AMD64 GCC 4.9 build.

Change-Id: I7b1d41db4d9b5db8b515cb75686dc5135177da68
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 17:41:37 +00:00
hjk
2d3b04e4f6 Sanitize JSON test data
Strings do not have to be overly specific to test parser function.

Change-Id: I345dfec7fb4b8004661f6757cfd53b428ad87b6b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 08:54:57 +00:00
Marc Mutz
03356fd17a QMessageBox: optimize textToCopy string construction
1. Keep 'separator' a QLatin1String.
   - saves at least two memory allocations
   - necessitates carrying the \n previously prepended to it
     around explicitly
2. Start adding to 'textToCopy' with op+=
   - saves one allocation, costs one -> ±0
   - preallocates more capacity than if we started with
     assignment
3. Collapse three unconditional op+= into one
   - more efficient usage of QStringBuilder
4. Don't collect button texts in a separate variable, but
   append to 'textToCopy' directly.
   - saves at least one memory allocation, probably more
     since the growth increments of 'textToCopy' should
     be larger (due to more content) than those of a new
     variable.

Also replace index-based iteration over the buttons with
C++11 range-for over a const QList. Avoids the detach that
happened previously, due to use of op[] instead of at(),
but frankly, I was just too lazy to separate this change.

Change-Id: I27a46a6a163c16d773124f140e085325b17ce5d1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-15 17:50:38 +00:00
YAMAMOTO Atsushi
786984e7e4 Windows: Fix QWindowsInputContext for Japanese IME.
Change the QWindowsInputContext::composition if it is called
with lParam has flags GCS_RESULTSTR and GCS_DELTASTART,
it doesn't call endContextComposition.

Task-number: QTBUG-49955
Change-Id: I2035c4b3c1e947c5757d7532150798963fc39012
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Takumi ASAKI <takumi.asaki@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-12-15 14:11:56 +00:00
Friedemann Kleint
16a73bca5d Testlib: Gather methods in a class.
In tests with many data sets and init()/cleanup() functions, a significant
time is spent looking up the methods "init"/"cleanup"and the test methods
in qInvokeTestMethodDataEntry().

Introduce a class TestMethods that aggregates the optional methods and the
test methods as a std::vector<QMetaMethod>. Its method list can be populated
either by inspecting the QMetaObject or from the command line.
The class is instantiated on the stack.

Previously, 2 data structures existed for storing the methods to execute
obtained from the command line (array of class TestFunction and an exported
StringList testFunctions for QML).

Remove the custom TestFunction and use only the (QML) testFunctions list
for populating the new class.

Speeds up tst_QChar::normalization() from 340ms to 300ms on an average
Linux machine.

Task-number: QTBUG-38890
Change-Id: I80b488e7249ce031b6d6c8442e53aa87bd2edd42
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-12-15 14:11:37 +00:00
Marc Mutz
43d1e61ade [docs] Fix assocated -> associated
Change-Id: Ia828db7bb71b874b19a610439e156687f273290f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-15 07:54:40 +00:00
Marc Mutz
b2aeeaf628 QTreeWidget: fix const-incorrectness in indexFromItem() parameters
The item to look up isn't modified, so take by pointer-to-const.
Can't change the API, so overload and mark the old function
for removal in Qt 6.

Change-Id: I4671c6b079687ec9d81b1ac0e6745887ef7077cd
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-15 07:54:29 +00:00
Friedemann Kleint
1d03ed3f2b Make native cursor handles accessible.
Add QWindowsNativeInterface::nativeResourceForCursor() and
implement for Windows (returning the HCURSOR) and XCB (returning
the xcb_cursor).

Task-number: QTBUG-49386
Change-Id: I963869f6e8741449822ecbe6489f9c42a786c7a6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-14 16:33:34 +00:00
Friedemann Kleint
3c8cf55074 QProcess/Windows: Fix handling of workingDirectory.
Store nativeWorkingDirectory in a variable on the stack to prevent
accessing the buffer of a temporary string.
Fix breakage introduced by 068baa9bb6.

Change-Id: I8cf9ffe39c97afc9383c33cafaeffb1245b3e2b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-14 15:53:42 +00:00
Marc Mutz
a8ff0bc887 tst_QChar: add a check for comparing against int/uint
This is used throughout Qt and resolves to
   operator op(QChar, QChar)

This test makes sure we don't break those
use-cases as we fix missing relational
operators as found by tst_QStringBinOps.

In the other direction, 0 op QChar is
ambiguous, due to op(const char*, QString)
etc, so only test the uint op QChar case.

Change-Id: Ifae7fb65bf3269583898cfea3fc6c95547c75122
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-13 13:14:43 +00:00
Marc Mutz
e5a20cb864 QString: mark relational operators (and compare()) nothrow
Saves ~3K in QtCore text size on GCC 4.9 Linux AMD64 relase builds.

Change-Id: I74171ba5499de200b9584660241ca1fae4bcad79
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-13 13:14:36 +00:00
Marc Mutz
1865145fa2 QChar: mark remaining relational operators nothrow
Equality and inequality were already marked nothrow, but
less/greater than (or equal) were not.

Fixed.

Change-Id: I3f7a3388b31fcaa2535353f357b5bd1fc86f261d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-13 13:14:31 +00:00
Sérgio Martins
918bb8ec47 network: Pass types with copy-ctor or dtor by const-ref
Change-Id: I7bea3e03bff6f424b02335476211dd466ce4d720
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-13 12:13:37 +00:00
Sérgio Martins
d6c2dea7da widgets: Pass non-trivially-copyable or large types by const-ref
Change-Id: I912c6a9ee7b27350ac3d1fe147b697338e76f53c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-12 20:35:56 +00:00
Milian Wolff
6cc79ad994 Optimize moc: Preallocate space for list of preprocessed symbols.
Without this, the symbol list is frequently reallocated. The value
is a guestimate. It corresponds to a block of memory with the size

262144 * 3 * 8 byte = ca. 6.3 megabytes

on a 64 bit machine. Looking at the final size of the symbol list,
this seems to fit the common case nicely.

Change-Id: Ib546a1ea479f2c6d8ab57be783cdf630f9b54f77
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-12 09:07:06 +00:00
Erik Verbruggen
b894dfe311 Fix compilation of isnan/isinf for MSVC2012.
MSVC doesn't define float versions for _isnan/_isfinite, so the double
versions need to be used. This is already done in the surrounding
functions, but not in these two.

Change-Id: Ic183358dc1790279e18d00a08b7279e76c02af60
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-11 11:17:42 +00:00
Jake Petroules
0ba7df2603 React to changes in the system color palette.
Task-number: QTBUG-49734
Change-Id: Ic7926b53b6ee417c6c6206f7a9d5bb08bfd0c051
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-11 11:06:52 +00:00
Marc Mutz
95a6dc1cb9 QStyleOption*V<N>: mark as Q_DECL_DEPRECATED
Change-Id: If9c5ec8193e51b2a8b091f46916fc74d2d03f1df
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-12-11 11:01:56 +00:00
Jake Petroules
e298ae3a5e Use modern APIs for accessing system palette.
Change-Id: I7ac88007be50963deaa43aac46566781696b55f6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-11 10:55:39 +00:00
Jake Petroules
2f549d61ec Add some functions to convert an NSColor to a QBrush.
NSColors can be quite complex and store patterns, gradients, dynamic
system colors that change based on global state (!), etc. QBrush is a
better equivalent to it than QColor.

Change-Id: I4b66a1ab85342bbb9efcf78011965ec74e5fc738
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-11 10:55:33 +00:00
Louai Al-Khanji
1bf1d0f493 qt_safe_poll: fix Windows to QNX/Android cross compiles
Task-number: QTBUG-49875
Change-Id: I8820f28351dff385d12a4c469ed689914f87b924
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-11 10:44:58 +00:00
BogDan Vatra
e3689949ba Android: Remove support for API < 16
Starting with Qt 5.7 we removed support for API < 16 (Android v4.1)

[ChangeLog][Android] Support for Android API < 16 was removed.

Change-Id: I8bf396a9d70ab0996965e0c9f629800aa1fa6a45
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-10 19:53:36 +00:00
Sérgio Martins
53697fe078 Don't allocate memory when creating an invalid QDateTime
Task-Id: QTBUG-47779
Change-Id: I5aad835c9fbf50962d64d14519ec31cf38cf9e3b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-10 19:17:18 +00:00
Erik Verbruggen
74c0416c99 Fix inconsistent override warnings.
For example:

../../include/QtGui/5.7.0/QtGui/private/../../../../../../../../qt5-dev/qtbase/src/gui/painting/qpaintengine_blitter_p.h:67:18: warning: 'end' overrides a
      member function but is not marked 'override' [-Winconsistent-missing-override]

Change-Id: I2845d8e4b5a7e11c57ac1933a6d152df1ef5d07f
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-12-10 18:28:26 +00:00
Joerg Bornemann
068baa9bb6 add a way to modify CreateProcess parameters
[ChangeLog][QtCore][QProcess] Added method
setCreateProcessArgumentsModifier to QProcess on Windows to enable
users to intercept and modify CreateProcess parameters.

With such a modifier, calling code can decide whether to inherit
handles, modify the STARTUPINFO struct, and pass its own
combination of process flags to CreateProcess.

Task-number: QTBUG-390
Task-number: QTBUG-6917
Task-number: QTBUG-9350
Task-number: QTBUG-24619
Change-Id: I14757dbbacfebb1c89f52402d36fba0ba9c45f3a
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-10 16:29:33 +00:00
Anton Kudryavtsev
4ae0b655b2 QCosmeticStroker: fix misleading use of & on bool operands
Change-Id: I0e885391b220c30fc1482446d1dc9a2be035d45a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-10 15:44:10 +00:00
Jake Petroules
f157babbed Move a reusable image conversion function into QCocoaHelpers.
Change-Id: I5fc8f84bd504e405968e212b3125179a2273ae79
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2015-12-10 14:38:46 +00:00
Ulf Hermann
1f2734b82b Xcb: Fix debugging code
We need to pass the correct connection and we need a specialization for
reply pointers. Also, there is not much of a point in first creating
a QString from a QByteArray, only to retrieve a QByteArray again.

Change-Id: Ia1bb5655f6229638e3bd2339acadeffc80561b9e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-10 10:28:56 +00:00
Tor Arne Vestbø
4c29eba248 Don't write absolute TargetSpec/HostSpec paths to qt.conf
Change-Id: Ifc25a26c5e59a214bdd8dc9398b4d0047fbb5ca2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-10 07:23:00 +00:00
Friedemann Kleint
1289bc8172 Tests: Remove empty init/cleanup slots, constructors and destructors.
Move some code (like registrations of meta types) from init() to
initTestCase() in the process.

Change-Id: I57db5156647cfadab554fbed853b2e68b2815f3b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-12-10 05:26:05 +00:00
Giuseppe D'Angelo
872b9b231e QLineEdit: fix the shortcut override events on a readonly line edit
When a QLineEdit is readonly there's a discrepancy between key press
events and shortcut override events. For instance, presses Ctrl+C
copies the text unless there's also a shortcut for the same key sequence.
In this case, the shortcut override event is not handled, and no text
is copied. Fix it by splitting the handling of shortcut override
events between "read only" access (copy, select, etc.), which still
makes sense on a read only line edit, and write access (paste, ...)
which doesn't.

[ChangeLog][Important Behavior Changes][QLineEdit] QLineEdit will
now accept certain shortcut override events even if it is read only.

Change-Id: Ie5b048259b99a1eff0581129e3ad97f27a88fe86
Task-number: QTBUG-21217
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-12-09 19:04:59 +00:00
Thorbjørn Lund Martsum
410aa20f07 QAIV - allow users to control single step in ScrollPerPixel mode
The documentation says that we scroll one pixel, but changing the
behavior in 934f062203 to do that
was not well received.

People were relying on the undocumented behavior - and the new behavior
was considered to be a regression. (Nobody called setSingleStep since
Qt in many cases provide a reasonable singleStep - which implied that their
programs scrolled with 1 pixel which was quite slow). Furthermore getting
the old behavior (auto set of single step) was nearly impossible.

However the revert (done in 0e69230d02)
gets us back to QScrollbar::setSingleStep not working in pixel scroll mode
(even without it being documented - but we should also have a working API
rather than documenting that it is not working)

The previous approach was directly prevented Qt from changing
single step (on e.g resize) at all. This patch only prevents Qt from
changing when a user explicitly has called the function
QScrollBar::setSingleStep (in pixel scroll mode).

That is we expect that calls to setSingleStep means that the user actually
wants to set the singleStep and doesn't want Qt to control that value.

Furthermore it is possible to switch back to the automatically adjusted
singlestep with QScrollBar::setSingleStep(-1).

[ChangeLog][QtWidgets][QAbstractItemView] QTBUG-7232 - In ItemViews
when scrollMode is set to scrollPerPixel, it is now possible to
change the single step. Qt will automatically adjust the single step
until setSingleStep is called. When setSingleStep is called it will
however respect the set and stop doing automatic changes of the value.
Calling setSingleStep(-1) will switch mode back to automatic adjust.

Task-number: QTBUG-7232
Change-Id: Ibfe0caa9751d3bcc11bfc6e0654a3d1ac35ac8ae
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-12-09 17:53:59 +00:00
Tor Arne Vestbø
49568df954 iOS: Enable non-pixman NEON drawhelpers for both 32 and 64-bit
The pixman drawhelpers are implemented using GAS syntax, which the
Clang assembler doesn't handle, nor do they work on 64-bit ARM, so
we disable them selectively. They are only used for 16-bit surfaces
anyways, so it not a big deal on iOS.

Change-Id: I78417fabd7f671f9c5d94b6e5fa5ce10d3fc1d27
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-12-09 17:48:55 +00:00
Mark Brand
02a730331e qsql_sqlite: fix segfault in dtor of orphan result
d79ae90466 accidentally removed the check
on the driver pointer before dereferencing it. This causes a segfault
when deleting a result object after its driver has already been deleted.
This situation can arise when a database is removed, explicitly or
probably also upon unloading the driver plugin, while related
results still exist. The problem affected
qttools/tests/auto/qhelpcontentmode.

Task-number: QTBUG-49836
Change-Id: I8ce8f8a5e27d787309ac2ff644b388e333d76435
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2015-12-09 08:41:54 +00:00
Mark Brand
371c2e4786 qsql_sqlite and qsql_sqlite2: don't hold driver data in result
Change-Id: Ia4f6adc6daaea97ac06246e9d01c6561de1227ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-09 07:32:32 +00:00
Mark Brand
a5cd081879 qsql: remove QSqlCachedResultPrivate::forwardOnly
The override creates unnecessary complexity.

Change-Id: I72e6cfd2515315ecb5e7a9744a275f06c90be8d9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-09 07:32:22 +00:00