summaryrefslogtreecommitdiffstats
path: root/src/corelib/global
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-10-175-38/+108
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/network/fortuneclient/client.cpp examples/network/fortuneserver/server.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore_p.h src/plugins/platforms/cocoa/qcocoabackingstore.h src/plugins/platforms/cocoa/qcocoaintegration.h src/plugins/platforms/cocoa/qcocoascreen.h src/plugins/platforms/ios/qiosbackingstore.h src/plugins/sqldrivers/oci/qsql_oci.cpp src/widgets/kernel/qwidgetwindow.cpp Change-Id: Ia6dd2c52d4a691b671cf9a2ffca70deccece8f10
| * configure: make C++11 <random> a required functionalityThiago Macieira2017-10-161-13/+6
| | | | | | | | | | | | | | | | | | Error out if it's missing or broken (Mersenne Twister not present). This ensures that we never have a low-quality random generator in Qt. Change-Id: I0a103569c81b4711a649fffd14ec80649df7087e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Unify wording in documentation to use 'top-left' instead 'upper-left'Christian Ehrlicher2017-10-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The Qt documentation is using 'upper-left' everywhere except at QRect(F) detailed description and Qt::CoordinateSystem enum description. Therefore fix it in those four places to be consistent. Task-number: QTBUG-59981 Change-Id: Ie652044d0207ea5a42888d9e1f1dc9a86b1e9410 Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io> Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| * Doc: fix QRandomGenerator missing updates after renameThiago Macieira2017-10-141-10/+10
| | | | | | | | | | | | | | | | | | Commit 282065d443c2a2d6b9e32d786c2c1c7552ba3cb5 renamed the generator functions but we didn't update all the docs. Change-Id: I0a103569c81b4711a649fffd14ec877ffbfe710d Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * QRandomGenerator: improve internal noexceptnessThiago Macieira2017-10-141-5/+7
| | | | | | | | | | | | | | | | | | There are a couple of Q_ASSERT wrapped by the new noexcepts, but most of those aren't validation of external parameters, only of internal construction. The two exceptions are the checks for pointer alignment. Change-Id: I0a103569c81b4711a649fffd14ec8523d741dfb6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-042-7/+9
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qconfig-bootstrapped.h src/corelib/global/qglobal.h src/corelib/tools/qcryptographichash.cpp src/corelib/tools/qcryptographichash.h src/corelib/tools/qmessageauthenticationcode.cpp src/plugins/platforms/windows/qwindowswindow.h tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/itemviews/qitemdelegate/BLACKLIST Change-Id: Ib68112de985a3d714c2071f47c10e907e4f0229a
| | * Fix strict-prototypes warning with qVersion functionJake Petroules2017-10-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is enabled by default with Xcode 9 and would therefore be seen by anyone calling this function from C or Objective-C. Task-number: QTBUG-63450 Change-Id: Iecd67017b6774c9f2fce2433002ff852058dd3ed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Reorder defines to respect alphabetic order in bootstrap configEdward Welbourne2017-09-271-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently it's all meant to be in alphabetic order by feature name (except for where it isn't). So move my new addition to it to where that would put it, re-order everything else to follow that rule and add a comment documenting it. Change-Id: I6f00d3d18fc8c492992e9f701520f3e8731739b5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * Make QDateTimeParser a separate featureEdward Welbourne2017-09-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was being mis-described in some places by a QT_CONFIG(timezone) test, replacing older QT_BOOTSTRAPPED checks; but it has no time-zone dependency (until 5.10). So make it a separate feature in its own right. It turns out QAbstractSpinBox's presumed dependency on datetimeedit was an illusion caused by use of QDATETIMEEDIT_*_MIN symbols actually provided by datetimeparser; so remove its bogus dependency. Change-Id: Ibc12f4a9ee35acb64a39a1c7a15d2934b5710dc0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | Fix element overwrite in QRandomGenerator's fallback functionEirik Aavitsland2017-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Copy into the intended array elements, not into the start of the array. Change-Id: I05c4ece2450583c9358aa1eddfd702262e995146 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | Add a "shim" to allow use of Clang 5's __builtin_available everywhereJake Petroules2017-09-271-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly relevant for Apple platforms, where we can use the new unguarded availability warnings to guarantee that proper version checks are present when using APIs that are not necessarily available on the deployment target. Change-Id: Ie408704b2924e1220491a9ea30f0141dfa4867d9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Fix unused variable warning in qrandom.cppJüri Valdmann2017-09-271-0/+2
| | | | | | | | | | | | | | | | | | | | | The 'ret' variable is unused if assertions are disabled. Change-Id: I90fec4e18e82d13b681068e222e994247988cbc5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-09-265-62/+108
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qguiapplication.cpp src/platformsupport/input/libinput/qlibinputpointer.cpp src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h src/plugins/platforms/cocoa/qcocoawindow.h src/testlib/qtestsystem.h Change-Id: I5975ffb3261c2dd82fe02ec4e57df7c0950226c5
| * | Add currentType function to QOperatingSystemVersionJake Petroules2017-09-253-19/+29
| | | | | | | | | | | | | | | | | | | | | | | | This allows us to retrieve the current OS type without constructing an instance of the class, and it's also constexpr. Change-Id: I8b32a1aebeb8139fe3fcf146e5de558fa1060bb8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | QRandomGenerator: update API to better nameThiago Macieira2017-09-222-43/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "generate" is better than "get", and we already have "generate(it, it)" which uses std::generate(). This changes: - get32() → generate() - get64() → generate64() and QRandomGenerator64::generate() - getReal() → generateDouble() Change-Id: I6e1fe42ae4b742a7b811fffd14e5d7bd69abcdb3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * | QOperatingSystemVersion: Add debug operatorFriedemann Kleint2017-09-202-0/+18
| | | | | | | | | | | | | | | | | | Change-Id: Ibc942196bef0edc74f34501830fc83cb64259e39 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | Replace Q_NULLPTR with nullptr where possibleKevin Funk2017-09-193-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remaining uses of Q_NULLPTR are in: src/corelib/global/qcompilerdetection.h (definition and documentation of Q_NULLPTR) tests/manual/qcursor/qcursorhighdpi/main.cpp (a test executable compilable both under Qt4 and Qt5) Change-Id: If6b074d91486e9b784138f4514f5c6d072acda9a Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Port QSemaphore to use futexesThiago Macieira2017-09-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is interesting because QSemaphore now needs to allocate no memory: it's just a simple 31-bit counter and the contention flag. Change-Id: I6e9274c1e7444ad48c81fffd14dbc0ab42bc2e00 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Unbreak the build and add support for Qt 5.12 tooThiago Macieira2017-09-041-0/+10
|/ / | | | | | | | | | | | | | | Unlike qdatastream.h, we can be ready for future versions. Current plans say we should do Qt 5.12 and then begin working on 6.0. Change-Id: I38341f8155354cc4a776fffd14e13c2f1362b483 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-08-316-53/+70
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/examples.pro qmake/library/qmakebuiltins.cpp src/corelib/global/qglobal.cpp Re-apply b525ec2 to qrandom.cpp(code movement in 030782e) src/corelib/global/qnamespace.qdoc src/corelib/global/qrandom.cpp src/gui/kernel/qwindow.cpp Re-apply a3d59c7 to QWindowPrivate::setVisible() (code movement in d7a9e08) src/network/ssl/qsslkey_openssl.cpp src/plugins/platforms/android/androidjniinput.cpp src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/widgets/widgets/qmenu.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp Change-Id: If7ab427804408877a93cbe02079fca58e568bfd3
| * QOperatingSystemVersion: add Android Oreo (v8.0, API level 26)Jake Petroules2017-08-223-1/+13
| | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Binary Compatibility Note] The variable QOperatingSystemVersion::AndroidOreo was added in this release. Code that uses this variable will not run under Qt 5.9.1. If backwards compatibility is desired, use instead QOperatingSystemVersion(QOperatingSystemVersion::Android, 8) Change-Id: I1da5a5577bf6b719e543a1ded1f9b912a83665c3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Doc: Clean up Qt::ApplicationAttribute docsTopi Reinio2017-08-211-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move deprecated and obsoleted enum values to the end, as there already was a category for them. Fix linking to 'Q(Gui)Application'. Update the usage of the name macOS. To make the table more readable in online style, add zero-width spaces to long strings, allowing browsers to word-break them, thus avoiding text overflow/horizontal scroll bar. Task-number: QTWEBSITE-783 Change-Id: I0a96156d24cba4a0405c4edd8d3829def30c69bf Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Android: Fix compile with unified headersBogDan Vatra2017-08-171-37/+37
| | | | | | | | | | | | | | | | Unified headers now defines _POSIX_THREAD_SAFE_FUNCTIONS but not all libc functions are available in all Android API versions. Change-Id: I01c94f0b89e7f8aa8575e7bbda28d9fe41a68ff1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Android: Fix warning for __fp16BogDan Vatra2017-08-171-1/+1
| | | | | | | | | | Change-Id: I65cd64dfc0ed357555e8b5276109303377a67e0e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | New AA_DisableWindowContextHelpButton to globally hide ? buttonKai Koehne2017-08-292-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dialogs and Sheets by default have the WindowsContextHelpButtonHint set, which adds a question mark button to dialogs on Windows. This button then triggers the 'What's this' mode by changing the cursor, and letting the user explore the UI by showing whatsThis tooltips. Anyhow, the paradigm is little used today and a lot of applications do not set any whatsThis properties, leaving the mode pretty non-functional. It's therefore common to explicitly remove the WindowsContextHelpButtonHint from dialogs. However, this has to be done for _every_ dialog. Instead, this patch adds a global application flag to not set the WindowsContextHelpButtonHint by default. This allows developers to already buy into the Qt 6 behavior, where the flag will not be set anymore by default. [ChangeLog][QtWidgets] Added AA_DisableWindowContextHelpButton attribute. Setting this attribute globally prevents the automatic "What's this" button on dialogs on Windows (WindowsContextHelpButtonHint). Change-Id: I497a79575f222c78b2d5d051a6de346b231f72d3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QTemporaryFile: Add support for Linux's O_TMPFILEThiago Macieira2017-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That means a file is never created, unless you ask for the name. There's no chance of left-over temporary files being left behind. QSaveFile also benefits from this, since the save file is not present on disk until commit(). Unfortunately, QSaveFile must go through a temporary name because linkat(2) cannot overwrite -- we need rename(2) for that (for now). [ChangeLog][Important Behavior Changes][QTemporaryFile] On Linux, QTemporaryFile will attempt to create unnamed temporary files. If that succeeds, open() will return true but exists() will be false. If you call fileName() or any function that calls it, QTemporaryFile will give the file a name, so most applications will not see a difference. Change-Id: I1eba2b016de74620bfc8fffd14cc843e5b0919d0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-08-151-0/+13
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/cocoa/qcocoamenu.h src/plugins/platforms/cocoa/qcocoamenu.mm src/plugins/platforms/cocoa/qcocoawindow.mm src/widgets/styles/qstylehelper_p.h Change-Id: I54247c98dd79d2b3826fc062b8b11048c9c7d9bb
| * Enable custom shared memory schemes on INTEGRITYTero Alamäki2017-08-101-0/+13
| | | | | | | | | | | | | | | | | | | | | | Replaced dependency to libdl.a with libshm_client.a. Defined symbols 'shm_area_password' and 'shm_area_name' internally. The build for INTEGRITY is static only so libdl.a is not needed. Change-Id: I7e34528835132d79ea582a30cf9ff61cdda198da Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add support for statx(2) on LinuxThiago Macieira2017-08-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This system call, new in Linux 4.11, gives us the file birth time. It's also extensible, representing the fourth generation of stat(2) on Linux (the original sys_stat(), sys_newstat(), sys_stat64() and now sys_statx()), not to be confused with glibc's __xstat function, which wraps a call to stat64. Anyway, the new one is designed to be extensible. Now we get birth times on ext[34] on Linux too: Name: . Path: . (/home/tjmaciei/src/qt) Size: 4096 Type: Directory Attrs: readable writable executable hidden nativepath Mode: drwxr-xr-x Owner: tjmaciei (1000) Group: users (100) Access: 2017-07-02T14:47:49.608 Birth: 2016-05-02T13:20:33.097 Change: 2017-07-01T13:37:08.737 Modified: 2017-07-01T13:37:08.737 It's not supported in any other filesystems I have (Linux sources show xfs has the feature too). Even on ext4, it depends on whether the filesystem was created with 256-byte inodes, which my /boot fs wasn't. Change-Id: I8d96dea9955d4c749b99fffd14cda23ed60d5e72 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Doc: add warning against bulk random data creation to QRandomGeneratorSamuel Gaist2017-08-051-1/+4
| | | | | | | | | | | | | | | | | | The full documentation explains it well but a more prominent warning will help avoid the wrong use of that class and encourage user to read further the documentation. Change-Id: I3178749f2b1b0350040f81eef253fd85c7ba0a5f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QFileSystemEngine::setFileTime/Unix: remove the fallback to futimesatThiago Macieira2017-08-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use as in the code: futimesat(fd, NULL, &tv) is not documented to work. The file descriptor should be a directory's one, not an open file (though the Linux source code seems to handle that case). This call was done as a fallback to futimes, so it's very unlikely a system would have futimesat and not futimes. Both the Linux and the FreeBSD man pages say it's deprecated anyway. Change-Id: I8d96dea9955d4c749b99fffd14cd94068dc7668a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | QFileSystemEngine::renameFile: use calls that don't overwriteThiago Macieira2017-08-042-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The renameat2(2) Linux system call, new in 3.16, allows for the atomic renaming of a file if and only if it won't clobber an existing file. None of the Linux libcs have enabled this syscall as an API, so we use syscall(3) to place the call. If your libc has SYS_renameat2 but your kernel doesn't support it, we'll keep issuing the unknown syscall, every time. Users in that situation should upgrade (3.16 is from 2014). On Darwin, there's a similar renameatx_np (guessing "np" stands for "non-portable"). I haven't found anything similar on the other BSDs. Change-Id: I1eba2b016de74620bfc8fffd14ccb4e455a3ec9e Reviewed-by: David Faure <david.faure@kdab.com>
* | Long live qEnvironmentVariable()Thiago Macieira2017-08-042-17/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore] Added qEnvironmentVariable, which returns the value of an environment variable in a QString, while qgetenv continues to be used to return it in a QByteArray. For Unix, since most environment variables seem to contain path names, qEnvironmentVariable will do the same as QFile::decodeName, which means NFC/NFD conversion on Apple OSes. I opted not to #include <qfile.h> from qglobal.cpp to implement that QFile::decodeName functionality, so qglobal.cpp doesn't depend on corelib/io and to avoid possible recursions. Task-number: QTBUG-41006 Change-Id: I14839ba5678944c2864bffff141794b8aaa7aa28 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devOswald Buddenhagen2017-08-021-1/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbconnection.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp src/plugins/styles/mac/qmacstyle_mac.mm src/widgets/widgets/qdockarealayout.cpp src/widgets/widgets/qmainwindow.cpp src/widgets/widgets/qmainwindowlayout.cpp src/widgets/widgets/qmainwindowlayout_p.h tests/auto/corelib/tools/qlocale/tst_qlocale.cpp tests/auto/other/macnativeevents/BLACKLIST tests/auto/widgets/widgets/qmenu/BLACKLIST Change-Id: Ic8e724b80a65e7b1af25511b0e674d209265e567
| * Blacklist use of [[nodiscard]] with ClangThiago Macieira2017-07-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | __has_cpp_attribute(nodiscard) is 1 in all compilation modes, but if you use it outside of C++1z, you get a warning. LLVM-bug: https://bugs.llvm.org/show_bug.cgi?id=33518 Task-number: QTBUG-61840 Task-number: QTBUG-62085 Change-Id: I84e45059a888497fb55ffffd14d3683f4808978b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Docs: Fix day/year format in QDateTimeDavid Fries2017-07-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QDateTime takes dd and yyyy. It is confusing when the example format strings don't work because they use DD YYYY, and it is a silent error with the characters not getting substituted and can be easy to miss. Improved Qt::ISODate, TZD isn't a format character so skip writing out a bad format example. Task-number: QTBUG-62111 Change-Id: Ia61d561074ae885fc0a99238d93cb34aaa9953bb Reviewed-by: David Fries <david@fries.net> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Fix use of getentropy on larger blocksThiago Macieira2017-07-271-2/+16
| | | | | | | | | | | | | | | | | | | | | | Found while working on suppressing the warning about the return value (which is either 0 or -1) was being ignored. Task-number: QTBUG-61968 Change-Id: I02d22222fff64d4dbda4fffd14d148b1724547ca Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add API to disable text shaping on fontsEskil Abrahamsen Blomfeldt2017-07-261-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the past, we had an undocumented text flag that worked with one of the QPainter::drawText() overloads. This was never intended as public API and served a specific cause in Qt WebKit at one point. But there is a general need for such API, as disabling shaping features easily gives 25% performance improvement on text rendering even for fairly short strings. This patch adds a new style strategy flag to disable shaping and will just uses the CMAP and HDMX tables to get glyph indices and advances for the characters. In Qt 6, the TextBypassShaping flag can be removed completely and be replaced by the style strategy. [ChangeLog][QtGui][Text] Added QFont::PreferNoShaping style strategy to support improvements to performance at the expense of some cosmetic font features. Task-number: QTBUG-56728 Change-Id: I48e025dcc06afe02824bf5b5011702a7e0036f6d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devSimon Hausmann2017-07-192-92/+18
|\| | | | | | | | | | | | | | | Conflicts: src/corelib/io/qwindowspipewriter.cpp src/widgets/styles/qcommonstyle.cpp Change-Id: I0d33efdc4dc256e234abc490a18ccda72cd1d9e6
| * Merge qt_error_string and QSystemErrorThiago Macieira2017-07-181-92/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes a lot of duplicated code that existed in both qglobal.cpp and qsystemerror.cpp, including the hack to get the correct strerror_r signature. This removes the incorrect use of EACCES, EMFILE, ENOENT, and ENOSPC from qt_error_string on Windows. qt_error_string is supposed to be used only with Win32 error codes from GetLastError(), despite there being a lot of uses in cross-platform and even Windows-specific code that pass errno constants. It may or may not work: that depends on whether the constants happen to match. ENOENT matches ERROR_FILE_NOT_FOUND and one could argue that ENOSPC matching ERROR_OUT_OF_PAPER is acceptable, but EMFILE isn't the same as ERROR_BAD_LENGTH nor is EACCES, ERROR_INVALID_DATA. Change-Id: I1eba2b016de74620bfc8fffd14cccb7f77f4b510 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Update OS version constants in qsystemdetection.hJake Petroules2017-07-161-0/+18
| | | | | | | | | | | | Change-Id: I8c8fa8861280948bf8488c4465a359858bb625e0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devGabriel de Dietrich2017-07-133-10/+10
|\| | | | | | | | | | | | | Conflicts: src/widgets/widgets/qmainwindowlayout.cpp Change-Id: I306b4f5ad11bceb336c9091241b468d455fe6bb6
| * Fix modernize-use-bool-literals issuesKevin Funk2017-07-082-9/+9
| | | | | | | | | | | | | | | | | | | | | | Reported by clang-tidy. Skipped fixes in implementation files, only changed headers. Change-Id: I5cfd266b3d4046f90baebc0c538b1b6ab03a02d2 Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Use the namespace-mangled symbol for the qt_version_tag group nameThiago Macieira2017-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | Doesn't affect our current builds since it's just a marker for the linker on what sections should be merged. Unless you're mixing namespaced and non-namespaced static builds into one executable. Change-Id: Ia53158e207a94bf49489fffd14c7bc294fccf8f9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Move endian-specific integer types to public qtendian headerAllan Sandfeld Jensen2017-07-093-81/+490
| | | | | | | | | | | | | | | | | | The classes have recently been cleaned up to be ready for being made public, and this change adds the final documentation. The classes are already used in qjson, qtdeclarative and some image format decoders. Change-Id: Ib6df89f1119162c5bad7a08e9b6f843a2db4040f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-07-062-8/+21
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I43531e087bb810889d5c1fbfcdffb29b78804839
| * Make qt_check_pointer more OOM-safeThiago Macieira2017-07-032-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, it can never return, so we can mark it Q_NORETURN and add an std::termianate at the end. Though if it did, we'd end up in a null- pointer dereference crash in the caller. Second, add Q_DECL_NOTHROW to it. It can't throw, but it terminates execution. This also prevents both puts and fprintf from escaping via pthread asynchronous cancellation on Linux/glibc. Third, don't use QMessageLogger, since that allocates memory and actually uses QString. If we really are in an OOM situation, then QString's failed allocation would recurse back into qt_check_pointer. We'd compound the OOM situation with a stack overflow... Change-Id: Ia53158e207a94bf49489fffd14c81c47971f4e82 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Use QMessageLogger context properly in qglobal.cpp redirectsThiago Macieira2017-07-031-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qt_assert and qt_check_pointer get the function name and line number from the caller (the functions are called from the Q_ASSERT and Q_CHECK_PTR macros, respectively), so we don't need to capture the context from those two functions. Instead, pass the context to QMessageLogger for proper logging. I've left the file name and line number in the assertions, for users who did not add them to their message log pattern, but I've removed from the almost never used qt_check_pointer function. Note: how useful is it that we allocate memory in response to failing to allocate memory? Change-Id: Ia53158e207a94bf49489fffd14c81b359c5b6537 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Rename the "sys_auxv" feature to "getauxval"Thiago Macieira2017-07-062-3/+3
| | | | | | | | | | Change-Id: I8d96dea9955d4c749b99fffd14cdbd1e69940d33 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-07-042-4/+11
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess_unix.cpp src/plugins/platforms/xcb/qxcbconnection.cpp src/plugins/platforms/xcb/qxcbwindow.cpp src/widgets/util/util.pri tests/auto/corelib/thread/qthread/qthread.pro tests/auto/corelib/thread/qthread/tst_qthread.cpp Change-Id: I5c45ab54d46d3c75a5c6c116777ebf5bc47a871b