summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* QDateTimeParser: de-duplicate vtableMarc Mutz2017-02-052-1/+5
| | | | | | | | | | | | | | | | | | | | QDateTimeEdit (QtWidgets) inherits its Private class from QDateTimeParser. By making the destructor (usually the first non-inline, non-pure, virtual function, and therefore the trigger for most compilers to emit the vtable and type_info structures for the class in that TU) out-of-line, vtables and, more importantly, type_info structures for the class are pinned to a single TU. This prevents false negative dynamic_cast and catch evaluation. Since the class is already exported, users of these classes are unaffected by the change, and since it's private API, we don't need to avoid adding code to the out-of-line destructor until Qt 6. Task-number: QTBUG-45582 Change-Id: Id57289a7eff13564dddeca0af1c45a6180c36c48 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix data corruption when reading byte arrays from QSettingsThierry Bastian2017-02-031-1/+3
| | | | | | | | | | | | On macOS, the code that read the plist is using QByteArray::fromRawCFData. When we return the data directly we need to detach the QByteArray so that it does not point CFData's data that will get deallocated just after the call. Task-number: QTBUG-58531 Change-Id: If829a304b986c99c8fc2aeeb992f2d539a4eef3a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Doc: corrected minor link issuesNico Vertriest2017-02-022-6/+9
| | | | | | | | | | | | | qcore_foundation.mm: - Can't link to 'fromCGPoint()' - Undocumented parameter 'point' in QPointF::fromCGPoint() - Can't link to 'fromCGRect()' - Undocumented parameter 'rect' in QRectF::fromCGRect() - Can't link to 'fromCGSize()' - Undocumented parameter 'size' in QSizeF::fromCGSize() Change-Id: Ie48f04c7b990634f8c5a836100b1be7854848bb4 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Qt5CoreMacros: append the --compiler-flavor=msvc flagBen Boeckel2017-02-011-1/+1
| | | | | | | | Previously, the flags were replaced rather than appended to, losing -I flags and causing `#include` directives to fail. Change-Id: I74609e891ea327a8136c8075ab13176fc85ab111 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix libs build with msvc on Chinese locale on WindowsLiang Qi2017-02-012-5/+5
| | | | | | | | | | | | | | | | | Chinese locale means Code Page 936 here. It's also related with removing C4819 warnings. And it's also following Conventions in Qt source code: All code is ascii only (7-bit characters only, run man ascii if unsure) See also http://wiki.qt.io/Coding_Conventions Task-number: QTBUG-56155 Task-number: QTBUG-58161 Change-Id: I37fa7a0e6a82a16eaf80e1cc99be801099ab87de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qnumeric_p.h: Simplify code to match currently-supported platformsThiago Macieira2017-01-311-9/+2
| | | | | | | | | | MSVC < 1800 (older than 2013) is no longer supported, so we can simplify the code. And the implementation for C never worked -- "if it's not C++, let's use a namespace!" Change-Id: Iaeecaffe26af4535b416fffd148c2c6788c43881 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* QtCore & winmain: Remove dead codeThiago Macieira2017-01-311-27/+0
| | | | | | | | | | The last use of qWinMain was removed in commit 390598cb4392bbf5f77e8a05578e190b1a9f544a, "Winmain: Remove Windows CE." It used to be used on non-WinCE, but that was dropped in commit 9b121e5579538477a1fc7c8250e5d7e875a58de8. Change-Id: Idc347fbb462f4122b044fffd1490a210358a61b1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QVariant: don't do fuzzy comparisons with NaN and infinitiesThiago Macieira2017-01-311-1/+11
| | | | | | | | | | | | There was a test that tested this, but was wrong. [ChangeLog][QtCore][QVariant] Fixed a bug that caused wrong results for comparisons of QVariants containing either NaN or infinite numbers. Task-number: QTBUG-56073 Change-Id: I33dc971f005a4848bb8ffffd1475d29d00dd1b7f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Normalize \since usageTopi Reinio2017-01-313-5/+5
| | | | | | | | | | | Although it's permitted to specify the project name together with a version number for \since, it's unnecessary for Qt classes and functions. This change also normalizes the version formatting: '<major>.<minor>' Change-Id: Ie5a43662077d13c31e241bcde8a7a2849d27d330 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Regroup the x86 QT_FUNCTION_TARGET_STRING_xxxx macrosThiago Macieira2017-01-301-7/+7
| | | | | | | Easier to have an overview of them. Change-Id: I445bb15619f6401494e8fffd149db6dec4851f6d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Move the declaration of SSE3 & newer macros above their useThiago Macieira2017-01-301-14/+14
| | | | | Change-Id: I445bb15619f6401494e8fffd149db66da3405b48 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Re-fix Clang-cl and ICC support on WindowsThiago Macieira2017-01-301-31/+3
| | | | | | | | | | | | | | | | Instead of using the actual compiler version to determine which C++11 features to enable, let's just use the Mirosoft compiler version that the actual compiler is claiming compatibility with. That is because the limiting factor is often the standard library, not the compiler itself. This will cause some features that do not depend on the library to also be disabled, but oh well. Better upgrade your Visual Studio version instead. Task-number: QTBUG-57696 Change-Id: I3e4e5051937c40319d6efffd14912cd4fdab25fb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
* MSVC: Fix use of POPCNT instruction without CPU checkThiago Macieira2017-01-271-0/+13
| | | | | | | | | | | | | | | | The __popcnt family of intrinsics with MSVC generates directly the POPCNT instruction and are documented to do so: https://msdn.microsoft.com/en-us/library/bb385231.aspx So we can't use __popcnt unless the target processor supports it. [ChangeLog][Windows] Fixed a bug that caused applications to crash with "Illegal instruction" faults when compiled with Visual Studio and run on some older processors. Task-number: QTBUG-58446 Change-Id: I445bb15619f6401494e8fffd149d83bd2a7e3376 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix MIPS DSP configurationAllan Sandfeld Jensen2017-01-271-0/+9
| | | | | | | | | The patch fixes a number of bugs in code, and removes dead logic clarifying that MIPS DSP, like ARM NEON, has no runtime detecton. Change-Id: If2f4eea68da5b2eaa80b8e9c8258206d8c1b7173 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QEventDispatcherWin32: remove tailings of Windows CE codeAlex Trotsenko2017-01-262-24/+0
| | | | | | | | It was automatically merged from 5.6 branch. Qt 5.8 does not support Windows CE. Change-Id: I6968f50ef568035c224851d595d6c057128491a7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Doc: add a note that UniqueConnection does not work for lambdasThiago Macieira2017-01-261-1/+7
| | | | | | | Task-number: QTBUG-52438 Change-Id: I3e4e5051937c40319d6efffd1491bef6feb6776e Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix warning about not calling the base class copy constructorThiago Macieira2017-01-261-0/+3
| | | | | | | error: base class ‘class QBasicAtomicPointer<void>’ should be explicitly initialized in the copy constructor [-Werror=extra] Change-Id: I2bc52f3c7a574209b213fffd149b4b71f3006be5 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QVariant of nullptr should always be nullAllan Sandfeld Jensen2017-01-251-1/+21
| | | | | | | | | Implements isNull for QVariants of a nullptr so they always return true to isNull(), instead of depending on how they were constructed. Task-number: QTBUG-58296 Change-Id: Ibddec795cdadedef7e17d22c265c29e752d8f99f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix build without features.temporaryfileTasuku Suzuki2017-01-251-2/+2
| | | | | | Change-Id: I3f26f122a20aa8e59baaf3f33b89cc776865ff8b Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Remove use of deprecated QRegExp from QLibraryInfoSamuel Gaist2017-01-241-8/+18
| | | | | | | This patch replaces QRegExp by QString search and replace. Change-Id: I11165afa45f8f9a856e6fb9b64929e4bdacb913d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix possible loss of data warningJesus Fernandez2017-01-241-1/+1
| | | | | | | | warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data while compiling class template member function 'QVarLengthArray<T,Prealloc>::QVarLengthArray(std::initializer_list<T>)' Change-Id: I36f5ef65ec1f511eac7f3ad1a4717d18f7dc9ce4 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix MIPS32 processor detectionAllan Sandfeld Jensen2017-01-241-3/+3
| | | | | | | | | | | Gcc defines neither _MIPS_ARCH_MIPS32 nor __mips32 on MIPS32 architectures, instead __mips is defined to 32. This fix exposed bit-rot in qdrawhelper where qt_memfill32 was set as a function pointer despite not being one since Qt4. Change-Id: I87461823e54fa3166223ebf97175fd05d2f2fd16 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: updated QString::fromRawData documentation to QRegularExpressionSamuel Gaist2017-01-232-3/+3
| | | | | | | | QString::fromRawData code sample still shows the use of QRegExp. This patch updates it for QRegularExpression and cleans the code. Change-Id: Iff0f736cdbdd7d35c65fde1496ce9f838a8f5c6d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: update QStringList doc with missing QRegularExpression referenceSamuel Gaist2017-01-232-3/+3
| | | | | | | | | The documentation of QStringList is missing some mention of QRegularExpression as well as still using QRegExp in some sample code. This patch fixes that. Change-Id: I4a7c9fe8e5ae7c73497192bb71d1fa66ee864bd2 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Doc: do not break the values list by blank lines in qnamespace.qdocDmitry Shachnev2017-01-231-4/+1
| | | | | | | | There should be no blank lines in \value content, otherwise qdoc ends the list and starts a new one. Change-Id: Idddc7992317894487445aea36397136df40b9691 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Fix build without features.textcodecTasuku Suzuki2017-01-231-0/+1
| | | | | Change-Id: Ia9636db509270db93c2f9e46adaf1def0f157344 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix build without feature.animationTasuku Suzuki2017-01-161-4/+6
| | | | | Change-Id: Ia1b9ae3a35cbc73d0bbf27db234d0cd120d0b601 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.8.0' into 5.8" into ↵Liang Qi2017-01-152-0/+20
|\ | | | | | | refs/staging/5.8
| * Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2017-01-142-0/+20
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qcoregraphics.mm Change-Id: I4d49535cd75f2cdf0151c1dbff312cce5e159760
| | * Work around MSVC ABI stupidity in exporting inline members of base classThiago Macieira2017-01-032-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case, the issue was ICC, when compiling QtQml: qv4sequenceobject.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QList<class QItemSelectionRange>::replace(int,class QItemSelectionRange const &)" (__imp_?replace@?$QList@VQItemSelectionRange@@@@QEAAXHAEBVQItemSelectionRange@@@Z) referenced in function "public: static bool __cdecl QV4::QQmlSequence<class QItemSelection>::deleteIndexedProperty(struct QV4::Managed *,unsigned int)" (?deleteIndexedProperty@?$QQmlSequence@VQItemSelection@@@QV4@@SA_NPEAUManaged@2@I@Z) This applies the same fix as qvector.h has had for ages due to QPolygon. Change-Id: I15b62e0f9cec482fbb40fffd1490d791db5056bc Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Add Q_CC_CLANG to the documentation pageKavindra Palaraja2017-01-151-0/+7
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-42247 Change-Id: I3f707df4d25cac12fabac863b4f6bb50bfac5e26 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | QtCore: fix GCC 7 warningsMarc Mutz2017-01-152-1/+4
|/ / | | | | | | | | | | | | | | | | GCC 7 warns about implicit fall-throughs now. Fix by adding Q_FALLTHROUGH. Change-Id: I482ab4c6adc469b11e1fd163516ff486b3b55ef7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Adapt to the C++ SIC introduced by P0021: noexcept overloadingThiago Macieira2017-01-141-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++17 adopts P0021R1[1], which makes noexcept be part of the function pointer's type and thus be overloadable. It contains some provisions for allowing a noexcept function pointer to cast implicitly to a non- noexcept function pointer, but that fails in the presence of templates and additional overloads that could match the type in question. Fortunately, the paper proposed a test macro, so we can change our sources now and be compatible with both C++14 and C++17 rules. This first failed with Clang 4.0 trunk. This source incompatibility is not our fault, it's the language's doing. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0012r1.html Task-number: QTBUG-58054 Change-Id: I2bc52f3c7a574209b213fffd14988cf0b875be63 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Fix typo in QT_REQUIRE_CONFIG error messagePaul Olav Tvete2017-01-131-1/+1
| | | | | | | | | | | | Change-Id: Iecfd398935f9c10aa456bd3452d34b31bc7eb4c9 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Doc: fix the datatype returned by Qt::TextAlignmentRoleGiuseppe D'Angelo2017-01-121-1/+1
| | | | | | | | | | | | | | | | It's supposed to be a full alignment (like Top | Right), not just one flag. Change-Id: I656adda83742d7e4f31955322e937e979b32747c Reviewed-by: David Faure <david.faure@kdab.com>
* | Fixed Chinese language selection on iOSJason Erb2017-01-101-21/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For language "Traditional Chinese" on iOS with region "US", the logic was formerly to attempt a match on country/language/script (fail), followed by country/language (which would result in script defaulting to "Simplified"). Now, the logic is to try language/script first if script is specified. Failing that, language/country will be attempted. Task-number: QTBUG-39639 Change-Id: I75a774b1e66686e95167ff221458a97a7ea2660d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jason Erb <jason.erb@sparist.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QNX: Fix comments on qcompilerdetection.hRafael Roquetto2017-01-101-4/+13
| | | | | | | | | | | | Change-Id: I75495b4ba3d8742419f824aa0e0b52694dbd42ed Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix compilation with QT_NO_SHAREDMEMORYUlf Hermann2017-01-101-0/+2
| | | | | | | | | | | | | | If we use QLatin1String we should include qstring.h. Change-Id: Iebd761b98e515e9cd9cd34b96a0f8a602d00f086 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Clarify that QString::toDouble does not have a fallbackKavindra Palaraja2017-01-101-2/+2
| | | | | | | | | | | | | | | | QString::toDouble always uses the 'C' locale. Task-number: QTBUG-44045 Change-Id: Ifb0c2f11c83c209907dd35bb39d1450022c8e85c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Adjust QNX choicesJames McDonnell2017-01-101-1/+1
| | | | | | | | | | | | | | Don't use Dinkum choices when the C++ library is libC++ (QNX 7.0). Change-Id: I18c3f716ccfb0c02dbfdc01eac4b707d3ae9aab6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Clarify StripTrailingSlash behaviorKavindra Palaraja2017-01-081-1/+1
| | | | | | | | | | | | | | | | | | StripTrailingSlash removes trailing slashes from the path, but not the entire URL. Task-number: QTBUG-47607 Change-Id: Id62b971e563e290b7ca000576bcc328616a3f1a2 Reviewed-by: David Faure <david.faure@kdab.com>
* | revert to building qmake with qconfig.cppOswald Buddenhagen2017-01-062-85/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | turns out that just appending builtin-qt.conf isn't a good idea: executable-editing tools (objcopy, prelink, etc.) will happily drop the "attachment". a safe method would be adding a proper section to the executable, but there doesn't appear to be an objcopy equivalent in msvc, and using entirely different methods of embedding the file with different toolchains seems like a rather bad idea. so instead go back to the old method of building qmake with a generated qconfig.cpp. of course, as said file is now created by qmake itself, we have to compile qlibraryinfo.cpp a second time, and link a second qmake executable. Task-number: QTBUG-57803 Change-Id: I9e232693550aa870cec154e49cc06add13017cc2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix compilation without sharedmemoryUlf Hermann2017-01-052-2/+4
| | | | | | | | | | | | | | | | | | | | | | We have to enable qt_safe_ftok with either sharedmemory or systemsemaphore. In order to make the resulting QT_CONFIG work with the bootstrap library we switch the features off for bootstrapping. Some tests and examples have to be excluded when sharedmemory is not available. Change-Id: I3fc3926d160202b378be2293fba40201a4bf50c5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Remove pointless QT_NO_THREAD ifdefs from qpropertyanimation.cppUlf Hermann2017-01-041-2/+0
| | | | | | | | | | Change-Id: I7b7e80abbddf4d43c6135775136d993196d708b3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Avoid zero-as-nullpointer warnings in QThreadUlf Hermann2017-01-041-2/+2
| | | | | | | | | | | | Change-Id: I3fd557a54d63c2dcabe58fab65326538896d02a2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Doc: add note about unsupported platforms for QProcessAleksey Lysenko2017-01-041-0/+3
| | | | | | | | | | | | | | Task-number: QTBUG-57840 Change-Id: I46a26a9c4c6ad0aa6994945091a2904c3b51080f Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Avoid compile warnings in qabstractanimation.cppUlf Hermann2017-01-031-0/+2
| | | | | | | | | | | | Change-Id: I57f90fc335b50231fb2093f096ad38168d476145 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Fix broken link in documentationFrederik Schwarzer2017-01-031-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-57530 Change-Id: Iecb1a26f6b8a7e8a506d768668cde1c277d15dde Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* | QDateTime::fromString(): improve performance by 33%David Faure2017-01-031-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getMaximum() and getMinimum(), called during parsing, create new QDateTime instances, which on Linux end up calling mktime(). Making these static (for the common case of LocalTime spec) improves performance dramatically, when parsing several date/times. tests/benchmarks/corelib/tools/qdatetime/ (after fixing it to actually parse a valid date/time) says: RESULT : tst_QDateTime::fromString(): - 36,742,060 instruction reads per iteration (total: 36,742,060, iterations: 1) + 24,230,060 instruction reads per iteration (total: 24,230,060, iterations: 1) Change-Id: I0c3931285475bf19a5be8cba1486ed07cbf5e134 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Doc: add a quick note about unfixed Windows encoding bugThiago Macieira2016-12-281-0/+3
| | | | | | | | | | | | Task-number: QTBUG-49640 Change-Id: Icb0289e3118a41dd9438fffd1492925b03de62d6 Reviewed-by: David Faure <david.faure@kdab.com>