Commit Graph

37197 Commits

Author SHA1 Message Date
Qt Forward Merge Bot
8842d9d1e6 Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I8bb8227f9da982e7d5ebe5324fc27abd9ac0d4fc
2018-08-17 09:08:06 +02:00
Morten Johan Sørvig
67352c9276 Merge QThread class definitions
We can reuse the main QThread definition for the no-thread
configuration and avoid having to keep them in sync.
Add stub definitions for member functions where needed.

Change-Id: I128db11684a6040d09c4a4ce114f1399cba523f8
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-08-17 00:35:03 +00:00
Ulf Hermann
0a06e1baf9 Modernize the "thread" feature
Add it to configure.json and replace all occurrences of QT_NO_THREAD
with QT_CONFIG(thread). Add conditions for other features that depend
on thread support. Remove conditions where we can use the QMutex and
QThreadStorage stubs.

Change-Id: I284e5d794fda9a4c6f4a1ab29e55aa686272a0eb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-08-17 00:34:36 +00:00
Morten Johan Sørvig
815153d4a4 Add QThreadStorage stub implementation
Add implementation for the no-thread configuration:
Assume access will only happen from one thread and
use a QScopedPointer to hold the data.

Unlike the real implementation this version will
delete the stored data on destruction, as opposed
to on QApplication destruction.

Change-Id: I9d8e89e7da18f967f463e2db7b50549c962acc84
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-08-17 00:34:33 +00:00
Morten Johan Sørvig
07f6eff58d Correctly initialize adopted threads in stub implementation
Set data->threadId, which makes the thread detection
used by Qt::AutoConnection work: it will now actually
select Qt::DirectConnection.

Change-Id: I9369e47eb7ed3ec88dba25f2d41e92139958bcd7
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2018-08-17 00:34:30 +00:00
David Edmundson
29778037f8 Don't block on lost context
When glGetError returns GL_CONTEXT_LOST, on XCB + Nvidia at least, the
error does not get cleared until the next successful
glGetGraphicsResetStatus.

We can't handle this properly until the start of the next frame where we
will hopefully have a valid context, but in the meantime we should avoid
locking up completely.

Change-Id: Id438d44d83b926e1f3e4281ca3704231bf1a23cf
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-08-16 22:04:10 +00:00
Thiago Macieira
b0479aab29 QUrl: Make sure we do reject URLs for which IDNA nameprep failed
qt_nameprep() already reset the string to its original length to
indicate failure, but we didn't handle that in qt_ACE_do(). So make it
have a return value whcih makes it easier to handle that case and do
handle it.

[ChangeLog][QtCore][QUrl] Fixed a bug that caused URLs whose hostnames
contained unassigned or prohibited Unicode codepoints to report
isValid() = true, despite clearing the hostname.

Change-Id: I41e7b3bced5944239f41fffd1545b7274c4b419d
Reviewed-by: David Faure <david.faure@kdab.com>
2018-08-16 19:34:52 +00:00
Mikhail Svetkin
d9d35b9fb6 Optimize implementation of Indexes generator
... which is Qt's version of std::make_index_sequence / C++14.

The current Indexes generator is recursing O(N) times which is reaching
recursion limits level for long IndexesList.
This implementation has only O(log N) recursion.

Change-Id: I423ef05152d77b18f1f5a64c49b273f49aa958bb
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 17:56:40 +00:00
Liang Qi
d98106d1d5 Merge "Merge remote-tracking branch 'origin/5.11' into dev" into refs/staging/dev 2018-08-16 18:59:13 +00:00
Liang Qi
8559bf934d Merge remote-tracking branch 'origin/5.11' into dev
Conflicts:
	src/corelib/global/qconfig-bootstrapped.h
	src/plugins/platforms/xcb/qxcbbackingstore.cpp

Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I4af138ffb2f5306373244523768209e8873b2798
2018-08-16 18:48:59 +02:00
Thiago Macieira
04bbf534f9 MSVC: add support for 64-bit POPCNT on 32-bit machines
It's just adding the count of each half.

Change-Id: I9868946ceaf74002bde1fffd154b29908319007f
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-08-16 16:33:38 +00:00
Samuel Gaist
30b0701c9b Refactor wildcard support in QRegularExpression
The API originally proposed was flawed in the sense that the setter
function would use a modified version of the parameter given which would
have make it a black box for the user. This patch fixes that by removing
that setter and providing a static method that will return the pattern
suitably modified to be used by QRegularExpression the same way the
escape method does.

[ChangeLog][Core][QRegularExpression] Implemented support for wildcard
patterns through a static method.

Change-Id: I0054bcaffd7525dac569f54fa81f73b7e4544b2e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 16:30:14 +00:00
Alexander Volkov
242ea38375 doc: Add missing override and remove redundant virtual for snippets
Change-Id: I2395fd01b93c4ea364225e0cf1a5f59908b691d0
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-08-16 11:00:31 +00:00
Gatis Paeglis
0f6b941ca5 xcb: cleanup QXcbConnection::handleXcbEvent()
- the usage of 'handled' variable was a mess.
- remove "generic" from API names. The naming was probably influenced
  too much from underlying C API (xcb_generic_event_t):
  - handleGenericEvent() -> handleNativeEvent() to be consistent with QWindow::nativeEvent().
    - dropped unnecessary 'long *result' from signature. It is useful only on MS Windows.
  - genericEventFilterType() -> nativeEventType(), it *is* an event type, not a filter type.
- XCB_CLIENT_MESSAGE was not passed to QWindow::nativeEvent(), which is done via
  HANDLE_PLATFORM_WINDOW_EVENT.
- minor: added some 'auto's where it makes sense and improved some variable names.

Change-Id: Id1c9896054e2dbd9a79bacd88394149c8cf2cdea
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-16 10:42:33 +00:00
Mitch Curtis
37bb907a92 Add debugging output to help diagnose cause of tst_qspinbox failure
I've tried to reproduce the failures in the CI a couple of times now,
but it keeps passing. Let's leave some debug output in the test so
that if/when it does fail, we might know a bit more about why it does
so.

Task-number: QTBUG-69492
Change-Id: I5b39ac692e9026ce4b25cd13d342b11e061b777b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Nathan Collins <nathan.collins@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-08-16 10:17:04 +00:00
Paul Wicking
9b59a2ef97 Doc: Update out-of-date screenshots in example docs
Task-number: QTBUG-63248
Change-Id: I4cd47977ae020b43ca92b1781ac8b038e6ef851c
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-08-16 10:12:21 +00:00
Edward Welbourne
32f1bf0cac Update QLocale::Country doc for new territories
Neglected in 44b6757fe5
Noted the need for this in a relevant script's instructions.

Change-Id: If69666f1799acebd434034c80b91056cb8777488
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:10:43 +00:00
Edward Welbourne
bcf0be9b8f Avoid signed/unsigned warning in template
tst_QtEndian's transformRegion_template() was getting a
signed/unsigned comparison warning when T was unsigned in a
QCOMPARE(T-value, 0); so use T(0) instead.

Change-Id: I78cb2ab96f79393def65ed2c020aa3039017ab92
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:10:22 +00:00
Edward Welbourne
cd0a76a150 Tidy up generation of aliases in locale-related enums
Replace lines of formatted output with dictionaries from which that
output can be generated efficiently (in sorted order).  Tidy up the
python code, in the process.

Change-Id: Ifb74eb69342646c5dbabc3247b3a8ddef602e934
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:10:04 +00:00
Edward Welbourne
d363113745 Normalise spacing in Language, Country and Script names
The scripts that generate the C++ enum names clean out spaces, so
there's no need for enumdata.py to use the squished names; instead,
include spaces where they belong and use them in the relevant names
where they show up.

Change-Id: I7261c87d69e654bc2e89f44d7ebbc06bfb403c58
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:09:56 +00:00
Edward Welbourne
30c973c93c Rework tst_QLocale::emptyCtor() as a data-driven test
That way, we'll get told all the cases that fail, rather than only the
first.  Provoked by investigation of failures that turned out to be
caused by QTBUG-69875.

Change-Id: I8fa2902cbbcb307cbe1fdec2e7d8d6b0c3eb998a
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2018-08-16 10:09:43 +00:00
Andy Shaw
cdccd0222b Add support for big resources with CMake
Task-number: QTBUG-55680
Change-Id: I09570a4e959ffd0e6d378bc315b13d57baaa82e8
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
2018-08-16 08:56:27 +00:00
Mikhail Svetkin
f1a6b97fe2 xcb: Add missing X11/XCB keysyms Undo, Redo, Find, Cancel
It was added 558dd7f587
It was missed after 128a6eec06

Change-Id: I99f5c42ea45227bef08092e22d656e2d7d3cf60f
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-08-16 06:55:29 +00:00
Paolo Angelelli
a0ebd98f58 Normalize path segments in QHttpNetworkRequest::uri
Task-number: QTBUG-69659
Change-Id: I184cc460d2e3736d042893a38aa1c11b7d443f88
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 04:52:56 +00:00
Gatis Paeglis
21f976f4f0 xcb: rewrite auto-repeat key detection logic
It's unclear what the original code was doing. It relied on 'm_release'
which could never be 'false' (ref. QTBUG-69679). It was subtracting event
times and comparing with arbitrary '10'. On X11 auto-repeat keys can be
detected by checking time and keycode of the current release event and
the next event in the queue. If an event is an auto-repeat, then next event
in the queue will be a key press with matching time and keycode.

Verified that auto-repeat was unreliable in Qt 4 as well. With this patch
auto-repeat works as expected.

Added support for Xlib's XPeekEvent in our XCB implementation QXcbConnection::checkEvent():

"The XPeekEvent() function returns the first event from the event queue,
but it does not remove the event from the queue."

Sneaking in one variable renaming: "string" -> "text", to match the QKeyEvent::text().

Task-number: QTBUG-57335
Task-number: QTBUG-69679
Change-Id: I0a23f138287f57eaaecf1a009bd939e7e0e23269
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-16 04:43:56 +00:00
Gatis Paeglis
32e21762fa xcb: remove unused xcb_icccm.h include from qxcbclipboard.cpp
Change-Id: I7afe3bece5f143f6040cf1009d6345c1fe430367
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-16 04:43:40 +00:00
Gatis Paeglis
279edd5254 xcb: remove a redundant call to xcb_change_window_attributes()
Few lines above we use the same attributes to create the window.
If attributes don't change, there is not need to call
xcb_change_window_attributes()

Change-Id: I1335b8be866bdd9911d7911c87f09091bf77e955
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-16 04:43:27 +00:00
Gatis Paeglis
f79cb977e6 xcb: remove redudant timeout arg from QXcbClipboard::waitForClipboardEvent
... clipboard_timeout is QXcbClipboard class member, accessible directly from
QXcbClipboard::waitForClipboardEvent().

Change-Id: Ibc241d1da4baedc0eaf84063251a1359b1cf4162
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-08-16 04:43:12 +00:00
Gatis Paeglis
b7dcc3455f xcb: Use functors in QXcbConnection::checkEvent()
... to check for buffered events. This makes the code less verbose and
easier to read. Changed the filter signature to pass an event type in addition
to the actual event, for the convenience of API user. And do not pass worthless
nullptr-s to the filter.

The only reason why KeyChecker from qxcbkeyboard.cpp was not converted
to lambda expression is that the code looks suspicious - KeyChecker::m_release
default value is 'true' and I don't see where it would ever be assigned
'false' (ref. QTBUG-69679) and the code is known to be buggy (ref. QTBUG-57335).
Those issues are out-of-scope for this patch.

Change-Id: If2fdd60fbb93eb983f3c9ad616aaf04834fede9f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-08-16 04:42:55 +00:00
Timur Pocheptsov
c5bde010ea DTLS: load roots from system stores only if allowed
Respect allowRootCertOnDemandLoading, as it's done in QSslSocket (well,
almost as in QSslSocket).

Change-Id: Ic6cbb24a91e92cdb20f5f749553f15a62aae8b02
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-15 18:19:25 +00:00
Timur Pocheptsov
b58da27aef QDtsl::abortHandshake() - generalize the notion of 'abort'
Previously, the function had a different name that made its purpose
clear - "abort after peer verification error was encoutered". Since
now it's just 'abort handshake', it also should abort an ongoing
handshake, even if no peer verification error found so that we
now have an API that can reset a QDtls object to its initial
'nothing done yet' state.

Change-Id: Idadfec6f82d65c8f07d1c2afa4467c921c7e85c4
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-08-15 18:19:15 +00:00
Kai Koehne
d47c287d70 Document xkbcommon version
Task-number: QTBUG-69276
Change-Id: I0023ce210205def958b9e18f3d3c3a63576fc871
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-08-15 14:14:26 +00:00
Tor Arne Vestbø
e86b1d4424 Fix documentation issue for QOpenGLContext::makeCurrent
Change-Id: Id0118e44e1ed44fecdd803dbc57ca0588a1afec0
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-08-15 13:17:36 +00:00
Tor Arne Vestbø
5c07efffac Improve QWheelEvent debug output
We now include the phase, which is helpful, and we distinguish between
modern wheel events with a pixel and/or angle delta, and compatibility
events sent from QWindowSystemInterface::handleWheelEvent with the old
Qt 4 single value delta and orientation.

Change-Id: I2efe9fe7a55c43240ec94bfa70cafaac6d52603c
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-08-15 13:17:17 +00:00
Allan Sandfeld Jensen
65491150b2 Add direct conversions between RGB30<->RGBA8888
Expands the existing conversions for ARGB32<->RGB30 to also handle
RGBA8888 to avoid any performance regression of the 16bpc conversion
path.

Change-Id: I34e519a04276b0e7ff00c6125ba06c889045d2ac
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-08-15 11:35:16 +00:00
Ryan Chu
0160b5a6cb Revert "Disable Docker-based test servers on QEMU devices temporarily"
This reverts commit 0eb1574b28.

Required toolchain update was integrated as:
23560769c1293f7cd7754ed916db2eea42efbd32

Change-Id: I5015a780e31dce5475c8485940ca9de62230e550
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-15 11:20:00 +00:00
Kevin Funk
48eb08d255 tests: Fix top-level CMakeLists.txt
Problem:
 CMake Error in CMakeLists.txt:
  A logical block opening on the line

    .../qtbase/tests/auto/cmake/CMakeLists.txt:149 (if)

  is not closed.

Broken by change 02ed1b36da

Change-Id: I6c04721edbccaa9fcdb53af92d33dfa87eeaebb8
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2018-08-15 11:08:34 +00:00
Martin Smith
23d7d56273 qdoc: Fix qdoc warnings from changes to QDtls
This update corrects several minor documentation errors that
were introduced by a recent change to QDtls.

Change-Id: I6ee6b0bf74c82dca86ba8d5f39acbd642829ec44
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-08-15 11:05:11 +00:00
Liang Qi
1a350077ff Revert "macOS: Don't call [NSOpenGLContext update] for every frame"
This reverts commit 823acb069d.

It caused some test failures in qtdeclarative and etc.

Task-number: QTBUG-69891
Change-Id: I2e4038a46de254834e6389c63f6dad0c2e523b8e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-08-15 10:36:00 +00:00
Jan Arve Sæther
540525bceb Windows QPA: Do not double delete the QTouchDevice
This caused a crash on destruction because as soon as you construct a
QTouchDevice it will register itself to a list of devices.  On application
exit the function cleanupDevicesList() in qtouchdevice.cpp would go
through all registered QTouchDevices and destroy them.  Therefore, there
is no need to delete the QTouchDevice from QWindowsPointerHandler.

This was a regression that was caused by
20d6dac63c

Change-Id: I58fb50016c047c3843a3f9677f2c2ef824223d43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2018-08-14 20:07:47 +00:00
Frederik Gladhorn
4fdda5a584 Fix delta in QWheelEvent passed to QQuickItem
While the property is deprecated, we should still set it, even in the
legacy free constructor. The window system never sends x and y changes
at the same time, so either coordinate will be null, therefor add them.
This should restore the old behavior.

Task-number: QTBUG-69089
Change-Id: Ie329cb4196f53c70b25934cbbac5e2e48c65d2b3
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2018-08-14 20:06:55 +00:00
Gatis Paeglis
1ae3db46e8 drop usages of Q_COMPILER_CLASS_ENUM
It is not relevant anymore. C++11 is a hard requirement for a while already.

Change-Id: Idb8fbdcd13398cc85fba583f40c2b5c4dc7c4943
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-14 19:27:30 +00:00
Martin Smith
109af99261 qdoc: Fix several minor errors to reduce qdoc warnings
This update corrects several minor documentation errors that
cause qdoc warnings. These include incorrect or missing \fn
commands, incorrect uses of \e and \a commands together,
incorrect spellings, etc.

Change-Id: Ib26edef541fa3440025490bcf79cc101623e7f7b
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-08-14 17:54:55 +00:00
Shawn Rutledge
8f18510133 Silence warning about comparing signed and unsigned
qxcbimage.cpp:72:26: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

Task-number: QTBUG-69923
Change-Id: Icdb4ce8cb7ce5b48d7ee3839166eb1c7c9520c78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-14 15:59:40 +00:00
Erik Verbruggen
8dd40e9b09 [macOS] Fix lower bound when searching for previous transitions
The lower bound shouldn't be the smallest (positive) value representable
by a double, but the *lowest* (finite) value.

Task-number: QTBUG-69862
Change-Id: Ia66610e3c0f8d9643c329714607f5af573206fd8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-08-14 15:02:08 +00:00
Shawn Rutledge
f2862b4d5d VNC plugin: explicitly cast int to uint16_t before calling htons
Otherwise there is a -Werror=narrowing error on big-endian
architectures (where htons does nothing).

Task-number: QTBUG-68390
Change-Id: Idb204a81aaedb9f4fde1d5fae406da36c7a1953e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry-picked from b206d1c808)
2018-08-14 14:59:58 +00:00
Erik Verbruggen
30e26d258b macOS: Handle missing key in QKeySequencePrivate::decodeString()
On macOS we pull out all the modifiers up front, which in the case
of incomplete key sequences such as "Meta+Shift+" will result in
an empty string as a result. The cross-platform code does not
handle that case, so we need to exit early.

This fixes an assert in tst_QKeySequence::parseString().

An assert has been added to QKeySequencePrivate::decodeString()
to make the assumption about the 'accel' argument explicit.

Change-Id: I135e62f9051a8b899202e5fb224b5d3c77bf2062
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-08-14 13:35:16 +00:00
Alexander Volkov
43f5377fad Make QMessageBox window with the detailed text closable
QMessageBox window ignores QCloseEvent if it was created
with Ok button and the detailed text was set. But it can
be closed if it contains only one button.

Make it closable if there are two buttons and one of them
is the "Show Details..." button.

[ChangeLog][QtWidgets][QMessageBox] A message box with two
buttons, one of which is the "Show Details..." button,
can be closed by clicking the X button on the window's
title bar.

Task-number: QTBUG-69526
Change-Id: Iba09e38561eb3898dc2aecfd38d8519d512a71c1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-08-14 04:39:05 +00:00
Johan Klokkhammer Helsing
edbac71691 Skip all qfocusevent test on platforms that don't support window activation
Task-number: QTBUG-66846
Change-Id: Ia8b69ede9154822f78ca28e0a2470b8bfb2abef0
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-14 04:38:35 +00:00
Gatis Paeglis
833b9997fd xcb: make sure we have a valid m_qimage in backing store
This patch amends a62f1d0356.

If the initial backing store resize request is called with QSize(0, 0),
we end up with QXcbBackingStoreImage holding a default contructed QImage / m_qimage.
This happens because of the logic in QXcbBackingStoreImage::create(), where
if we detect that the requested segmentSize == 0, we do not allocate
any memory, and thus don't create a valid image in m_qimage. On subsequent
call to QXcbBackingStore::resize() we would only check if QXcbBackingStoreImage
object has been created, but not if it is in a valid state. This obviously
would cause problems.

This patch re-factors the logic to handle better resize to QSize(0, 0). And
make the code cleaner by:

- merging ::create and ::resize as semantically it is always resize().
- dropping unnecessary argument passing.

Task-number: QTBUG-69581
Change-Id: Ied337beb449dea8259fcf6b7d29f0a5bd553019d
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-08-13 22:14:26 +00:00