summaryrefslogtreecommitdiffstats
path: root/src/corelib/global
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/devLiang Qi2016-02-111-10/+10
|\
| * Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-111-10/+10
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qfilesystemwatcher_win.cpp src/corelib/plugin/plugin.pri src/plugins/platforms/cocoa/qcocoaaccessibility.mm tests/auto/corelib/tools/qlocale/tst_qlocale.cpp Change-Id: Id6824631252609a75eff8b68792e4d10095c8fc1
| | * Deconfuse some heavy use of the preprocessor.Edward Welbourne2016-02-021-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One #if...#endif started in one function's body and ended in another's, which is worth remarking on in comments at both ends. A later #if...#else... opened blocks in both halves, that were closed just after their #endif, leading to simplistic brace-matching failure; so move that closing brace to inside both halves, so each half is brace-balanced and the function, as a whole, brace-balances simply. Commented on each #endif that was distant from its #if. Change-Id: I74d97b6dc4b291ec05053d299077a61cecf41ca1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | * Correct usage of Apple-related #if-ery.Edward Welbourne2016-02-021-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | As requested by sanity-bot. Change-Id: I8f6793a26f5cf600d4e6225ca219496cfbb25799 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Add initial clang-cl support to QtAndreas Holzammer2016-02-112-5/+10
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the functionality to build Qt with clang under Windows against the Microsoft Visual Studio 2015 runtime. In order to replicate this, a Clang 3.8 build with Visual Studio 2015 Update 1 is needed. Adds compiler detection to Qt to distinguish correctly the clang compiler and Windows with Visual Studio. Clang has some built-in numeric functions, there is no need to use the Microsoft versions, which also conflict here. Task-number: QTBUG-50804 Change-Id: Ia4b267a298310ac7d73edf473b12792991249d8a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Mark QHash/QMap as relocatable and movable-come-Qt 6Marc Mutz2016-02-091-0/+26
| | | | | | | | | | | | | | | | | | | | They were forgotten from the movable containers for Qt 5.0. Make sure we don't forget for 6.0, either. Until then, mark with new Q_RELOCATABLE_TYPE. Change-Id: I279a96c02a718a1432040303bb0d001739f59a17 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add setFlag method to QFlagsAndre Somers2016-02-082-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | This makes implementing class methods that enable or disable a feature stored in a QFlags<> member easier. [ChangeLog][QtCore][QFlags] Added setFlag method to set or unset a flag Task-number: QTBUG-27100 Change-Id: Ic602abbbf3100df78f21b7918573744d1bbd18c1 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-02-021-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/compile.test src/plugins/platforms/cocoa/qcocoahelpers.mm src/tools/qlalr/cppgenerator.cpp Change-Id: I0103ca076a9aca7118b2fd99f0fdaf81055998c3
| * Bump copyright year to 2016Kai Koehne2016-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | Bump copyright year in tool output and user visible strings to 2016. Task-number: QTBUG-50578 Change-Id: I2f4aa9089c6672726f554cba7e6009b425d27683 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* | Adapt QFileDevice to use QIODevice's write bufferAlex Trotsenko2016-01-291-1/+1
| | | | | | | | | | | | | | | | | | Also, bump the TypeInformationVersion field in qtHookData, to notify the Qt Creator developers that the offset of QFilePrivate::fileName was changed and dumpers should be adapted. Change-Id: I71bc5f509b733c0ab3430cd47ff08961f0388839 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | QIODevice: make the read/write chunk sizes configurableAlex Trotsenko2016-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, the read chunk size is QIODEVICE_BUFFERSIZE and the write chunk size is 0 (which means that we don't use the internal write buffer). Derived classes may override these values to define the size of QIODevice's write buffer or to optimize the read buffer use. Bump the TypeInformationVersion field in qtHookData, to notify the Qt Creator developers that the offset of QFilePrivate::fileName was changed and dumpers should be adapted. Change-Id: Ib732bc94be8da8a5514a6e5dcc04445895f130d8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | QIODevice: add infrastructure for multistreamingAlex Trotsenko2016-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some sequential devices allow data to be partitioned into several channels that have the property of independently sequenced delivery. Supporting such devices uniformly requires a unified API which provides the user with a uniform concept of multistreaming. This patch is based on QProcess's multiplexing model and introduces the following features: - ability to get the number of channels; - multiple internal read/write buffers; - channel selection functions; - notification signals on channel activity. To keep the source code compatible with single-channel implementations, introduce a private class that references the current read buffer and hides multistreaming internals from the user. Bump the TypeInformationVersion field in qtHookData, to notify the Qt Creator developers that the offset of QFilePrivate::fileName was changed and dumpers should be adapted. [ChangeLog][QtCore] Added multistreaming to QIODevice. Change-Id: Idcaa6a618927c101c4c7284d2a633913be6a6ee2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2016-01-262-9/+11
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java src/dbus/qdbusconnection_p.h src/dbus/qdbusintegrator.cpp src/dbus/qdbusintegrator_p.h tests/auto/corelib/io/qdir/qdir.pro tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp Change-Id: I3d3fd07aed015c74b1f545f1327aa73d5f365fcc
| * QNX: Fix -developer-buildRafael Roquetto2016-01-221-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -developer-build enables -Werror=undef, which uncovered a bug inside qcompilerdetection.h. According to the Dinkum headers, it is necessary to account for three different states concerning the values of the _HAS_* macros: 1. undefined 2. 0 3. 1 Therefore, it is necessary to check both whether it is defined and if it is not 0. Only checking whether a given macro is 0 will generate a trap by -Werror=undef. (__GLIBCXX__ is the sole exception). Change-Id: Ib95e485698ee38858a1671d930d7e960b75bb041 Reviewed-by: James McDonnell <jmcdonnell@qnx.com> Reviewed-by: Dan Cape <dcape@qnx.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix the use of R_X86_64_GOTPCREL on a 64-bit field: it should be 32-bitThiago Macieira2016-01-211-5/+7
| | | | | | | | | | | | | | | | | | | | | | The ABI says that PC-relative displacements should be on 32-bit fields, even on 64-bit builds. For -mcmodel=large, it should use R_X86_64_GOT64 relocations, like 32-bit. Task-number: QTBUG-50537 Change-Id: I1041122c530b4f5bbaabffff142ade5b3cbfc4c5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | [docs] Gently discourage use of Q_FOREACH/foreachMarc Mutz2016-01-261-2/+10
| | | | | | | | | | | | | | ... and suggest to use C++11 range-for instead. Change-Id: If4d4dec1a0cbbc2307ee7d2635f0a8fc3a1ec353 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Add Intel copyright to files that Intel has had non-trivial contributionThiago Macieira2016-01-214-0/+4
| | | | | | | | | | | | | | | | | | I wrote a script to help find the files, but I reviewed the contributions manually to be sure I wasn't claiming copyright for search & replace, adding Q_DECL_NOTHROW or adding "We mean it" headers. Change-Id: I7a9e11d7b64a4cc78e24ffff142b506368fc8842 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Update the Intel copyright yearThiago Macieira2016-01-215-5/+5
| | | | | | | | | | | | | | | | | | Not that we require it, but since The Qt Company did it for all files they have copyright, even if they haven't touched the file in years (especially not in 2016), I'm doing the same. Change-Id: I7a9e11d7b64a4cc78e24ffff142b4c9d53039846 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-216-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Document qAsConst(), turning it into public API.Marc Mutz2016-01-211-0/+65
| | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore] Added qAsConst(). Task-number: QTBUG-50548 Change-Id: Id25592c821808596c6a5768a42b76c1db569f490 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-1535-483/+693
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.6' into dev" into refs/staging/devSimon Hausmann2016-01-131-3/+1
|\ \
| * | Merge remote-tracking branch 'origin/5.6' into devSimon Hausmann2016-01-121-3/+1
| |\| | | | | | | | | | Change-Id: I5839bded07e23af65ced9491c4f50242f964dd31
| | * Doc: mention that Qt::AA_X11InitThreads isn't used anymoreDavid Faure2016-01-111-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | Whether or not to call XInitThreads() doesn't apply since Qt-5.0's switch to XCB. Change-Id: I5f1e5e664a251c98af6357c87fc9a6bb03a46ce3 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* | | QIODevice: handle incomplete readsAlex Trotsenko2016-01-121-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a transaction mechanism that gives the ability to read the data atomically. Current implementation supports transactions for both types of devices. For sequential devices, it records the whole input stream during transaction. For random-access devices, device position is saved when transaction starts. If an error occurs, the application may be able to recover the input stream by rolling back to the start point. Also, QIODevice::peek() was rewritten to make use of transactions internally. The replacement of QIODevicePrivateLinearBuffer by QRingBuffer is closely entangled with that, which makes it unfeasible to do separately. Bump the TypeInformationVersion field in qtHookData, to notify the Qt Creator developers that the offset of QFilePrivate::fileName was changed and dumpers should be adapted. [ChangeLog][QtCore] Added QIODevice's startTransaction(), commitTransaction(), rollbackTransaction(), isTransactionStarted() functions to support the read transactions. Task-number: QTBUG-44418 Change-Id: I3564b343ebeeaaf7c48a1dcdb7ef0a7ffec550f2 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into devFrederik Gladhorn2016-01-084-78/+31
|\| | | | | | | | | | | Based on merge done by Liang Qi Change-Id: Id566e5b9f284d29bff2199f13f9417c660f5b26f
| * winrt: Use winsock2 API for hostname resolution on WinRT/WinPhoneOliver Wolff2016-01-052-53/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That API has been available for WinRT and Windows Phone for some time now. By using it to get the machine name and for hostname resolution we can get rid of some winrt-only code and use qhostinfo_win.cpp on WinRT and Windows phone as well. Additionally the required capability was added to tst_qhostinfo so that this auto test can be run without any manual editing. Change-Id: I63fa5521bf8cdb0c919bd5a0100ea977c865622a Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
| * WinRT: Add camera button events on Windows PhoneSamuel Nevala2016-01-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows Phone 8.1 provides access to the camera button and press/release events get passed as Key_CameraFocus and Key_Camera. Unfortunately a release does not provide what has been pressed before, hence this information needs to be cached when the press happens. Done-with: Maurice Kalinowski<maurice.kalinowski@theqtcompany.com> Task-number: QTBUG-39115 Change-Id: I6ce58a1f07a6bf7183b8d99a26e5cd7b0d32d6db Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * qprocessordetection.h: Fix detection of 32-bit ARMv8Thiago Macieira2015-12-211-20/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is more future-proof. It fixes the detection of 32-bit on ARMv8-A processors since it uses the __ARM_ARCH macro that GCC and Clang define. For MSVC, we use _M_ARM, which also contains the architecture version. MSVC does not currently support ARMv8 code, but when it does, this commit should make the support automatic. I don't know which compiler defines __TARGET_ARM_ARCH, but support it too. Change-Id: I8de47ed6c7be4847b99bffff141c8ede54a849eb Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | Print correct OS name if it is a server versionAndré Klitzing2016-01-041-7/+11
| | | | | | | | | | | | | | https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx Change-Id: I7ee4c78959696ee2b662899a6a1408cfd1ebcacd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Print out "Service Pack" version of underlying WindowsAndré Klitzing2016-01-041-7/+27
| | | | | | | | | | | | Change-Id: I1f7dbf8f1244e8b7bf2f459fdce381838d776dbe Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Add qAsConstMarc Mutz2016-01-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...to turn mutable lvalues into const lvalues. Like the proposed std::as_const, it should not apply to rvalues to avoid lifetime issues in code like for (auto x : qAsConst(someFunc())) // dangling At a more basic level, qAsConst isn't useful for rvalues, because one can always store them in an lvalue first, with no loss in performance (the object is created by the compiler silently anyway). So the correct way to write the above is: const auto funcResult = someFunc(); for (auto e : funcResult) To fail compilation when passing rvalues, I used the const-&& pattern also employed by std::cref(), and the proposed std::as_const. Intended as internal API, but not put into the QtPrivate namespace to make it simpler to use. We could wait for std::as_const, but that is far, far away (just entered the current C++17 draft as of this writing), and the Qt containers with their tendency to detach are a problem _now_. Change-Id: I8824a59d2274de5c5cd642f117212322e4648025 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Fix compilation of isnan/isinf for MSVC2012.Erik Verbruggen2015-12-111-2/+2
| | | | | | | | | | | | | | | | | | 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>
* | Allow Q_CHECK_PTR when asserts are forcedAlex Trotsenko2015-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | Since the commit 9f83e75d3fbfc01a5ca8d87b4c33ca1ad848387d we can build the release packages with Q_ASSERTs still enabled. As this feature was targeted to embedded platforms it would be nice to enable Q_CHECK_PTR macro as well. Change-Id: I2d549d92b7196935665d927e6aaed3e9f31593b1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.6' into devSimon Hausmann2015-12-081-1/+1
|\| | | | | | | Change-Id: I2532c7f7db5e6cc3ef09753d886279816dd662b2
| * Q_UNIMPLEMENTED: remove explicit file, line and funcinfo informationMarc Mutz2015-12-071-1/+1
| | | | | | | | | | | | | | | | This information is already registered by the QMessageLogger ctor. Change-Id: Iac378777675f00ad5d07b938605484b1466aa5c5 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add GHS toolchain architecture macros.Rolland Dudemaine2015-12-041-4/+5
| | | | | | | | | | Change-Id: I4967451d52443a5f301b3706bcbbc2713ae70942 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-12-022-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qcoreapplication.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/network/bearer/qnetworkconfiguration.cpp src/plugins/bearer/blackberry/qbbengine.cpp src/plugins/platforms/android/androidjnimain.cpp src/plugins/platforms/android/qandroidplatformtheme.cpp src/plugins/platforms/qnx/qqnxbpseventfilter.cpp src/plugins/platforms/qnx/qqnxfiledialoghelper_bb10.cpp src/plugins/platforms/qnx/qqnxinputcontext_imf.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxnavigatorbps.cpp src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp src/plugins/platforms/qnx/qqnxwindow.cpp src/widgets/kernel/qwidgetwindow.cpp src/widgets/styles/qwindowsvistastyle.cpp src/widgets/styles/qwindowsxpstyle.cpp src/widgets/widgets/qtoolbararealayout.cpp tests/auto/corelib/global/qflags/qflags.pro tests/auto/corelib/itemmodels/qitemmodel/modelstotest.cpp tests/auto/corelib/tools/qversionnumber/qversionnumber.pro tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp Change-Id: I37be88c6c185bb85404823353e027a0a6acdbce4
| * Fix overflow-checking additions and multiplication on MinGWMatt Hoosier2015-12-021-1/+1
| | | | | | | | | | | | | | | | | | Intrinsics headers are associated with compilers, not OS's. This change fixes a broken MinGW build triggered by 29bc68cf169b8cf87d306a1c72e12eb9b6fbfce7. Change-Id: Ib9e4ea3e25bf49d38a754a246b9433bc078bbb18 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Doc: Omit default argument in describing a function callTopi Reinio2015-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QKeySequence::PortableText is the default value for argument passed to QKeySequence::toString(), and it doesn't need to be mentioned specifically in description for Qt::AA_MacDontSwapCtrlAndMeta enum value. Dropping the parameter shortens the text string, allows browser to better wrap the table text, and gets rid of the automatic horizontal scrollbar in online style. This improves readability for the entire table. Change-Id: I7051f5415a7a100b8c76f23b06b6cb9a2b0699ef Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* | Aarch64: fix Q_PROCESSOR_ARM_V8 detection.Erik Verbruggen2015-11-261-1/+3
| | | | | | | | | | | | | | | | | | The macro __ARM64_ARCH_8 is only set by Apple's flavor of clang. GCC and mainline clang set __ARM_ARCH to 8, and set __ARM_ARCH_8A (when applicable). Change-Id: I356b785ffdbfedf8f1ed682840db431db2779ba5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Remove remaining support for BlackberryLouai Al-Khanji2015-11-213-33/+12
| | | | | | | | | | | | | | | | | | The platform is no longer supported or actively maintained, and is in the way for improvements to the Unix event dispatcher and QProcess implementations. Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Long live qUtf16Printable()Marc Mutz2015-11-212-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QString::asprintf() has the ability to take a ushort* array as obtained from QString::utf16() and insert that into the output with an %ls conversion. But no-one ever used this, because just passing QString::utf16() to QString::asprintf() creates a warning about wchar_t* expected, but ushort* provided. The new qUtf16Printable() macro adds the necessary casts (via void* to prevent any "type-punned pointer" warnings) to make passing QString::utf16() to QString::asprintf() work silently. This should greatly reduce the need to do a round-trip via utf-8 just to print the contents of a QString. [ChangeLog][QtCore] Added qUtf16Printable(). Change-Id: I7ddd8d2b2a2191c9faa26aca95d49850d94b287c Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add {add,sub,mul}_overflow for signed integers.Erik Verbruggen2015-11-201-1/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In C++, signed overflow math is Undefined Behavior. However, many CPUs do implement some way to check for overflow. Some compilers expose intrinsics to use this functionality. If the no intrinsic is exposed, overflow checking can be done by widening the result type and "manually" checking for overflow. Or, for X86, by using inline assembly to use the CPU features. Used in QtQml. Change-Id: I2ef2523ccaa98f6757a45e24862a2fa730a26bb0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Reimplement qt_inf/qt_snan/qt_qnan using std::numeric_limits.Erik Verbruggen2015-11-191-70/+14
| | | | | | | | | | | | | | | | | | | | | | | | Qt already assumes a working IEEE-754 implementation, so we can rely on a working std::numeric_limits<double>. This patch also gets rid of three cases of type-punning with unions (which is undefined behavior in C++). Change-Id: Ic3747f49d55e372960abf2091c1d5752c1eccdff Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-11-182-1/+9
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/network/kernel/qnetworkinterface_winrt.cpp tools/configure/configureapp.cpp Change-Id: I47df00a01597d2e63b334b492b3b4221b29f58ea
| * Add support for the C++11 features fixed in MSVC 2015 Update 1Thiago Macieira2015-11-181-0/+7
| | | | | | | | | | | | | | | | | | | | This brings MSVC 2015 support to almost C++11 feature completion. Constexpr support still has one annoying bug, for which the fix is promised for Update 2. Change-Id: I92c2ee6638625c61e3a16690563434e32d853368 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Docs: Add a note clarifying that Q_MOVABLE_TYPE is not about move semanticsOlivier Goffart2015-11-131-1/+2
| | | | | | | | | | Change-Id: Ib1fb9ac00c0437ed2312c46e3e97d7ece05ba8e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | foreach: remove implementations not using decltypeOlivier Goffart2015-11-161-64/+2
| | | | | | | | | | | | | | | | decltype is mandatory now so we can remove the implementations of Q_FOREACH that are not using decltype Change-Id: If42a7fb078230ee7bdb55a9442125d7af70913e6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-11-048-36/+56
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/ptrsize.test configure src/corelib/global/qnamespace.h src/network/socket/qabstractsocket.cpp tests/auto/other/networkselftest/networkselftest.pro Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672