summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix crash when re-creating QThreadData after initially destroying itTor Arne Vestbø2013-06-141-0/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We destroy the thread data for the main thread when the QCoreApplication is destructed, and then delete the pthread key for the thread data in the global static destructor function 'destroy_current_thread_data_key'. The user may have its own Q_DESTRUCTOR_FUNCTION though, which may or may not run after we've destroyed the key. If it runs after we've destroyed the key, we'll end up trying to re-create the tread-data, as expected, but set_thread_data() will fail to persist it, as pthread_setspecific is called with an invalid key. The result is an infinite recursion: ... 6 in QThreadData::current () at qthread_unix.cpp:216 7 in QObject::QObject (this=0x48e1b30, dd=@0x48e1b40, parent=0x0) at qobject.cpp:703 8 in QThread::QThread (this=0x48e1b30, dd=@0x48e1b40, parent=0x0) at qthread.cpp:396 9 in QAdoptedThread::QAdoptedThread (this=0x48e1b30, data=0x48e1af0) at qthread.cpp:120 10 in QAdoptedThread::QAdoptedThread (this=0x48e1b30, data=0x48e1af0) at qthread.cpp:130 11 in QThreadData::current () at qthread_unix.cpp:219 12 in QObject::QObject (this=0x48e1a20, dd=@0x48e1a30, parent=0x0) at qobject.cpp:703 ... To solve this, we reset current_thread_data_once when destroying the key, so that subsequent calls to pthread_once to potentially create the key will call create_current_thread_data_key once more. This means we'll leak the key for this particular use-case, since we don't end up calling pthread_key_delete a second time, but this leak is small and happens typically only for a short duration during application shutdown. Change-Id: I580484a3239849e891172e24e7f77b75afd2c51b Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Mark the Q_DECLARE_OPAQUE_POINTER macro as introduced in 5.0Laszlo Papp2013-06-121-0/+1
| | | | | | | | | | Change-Id: Ida52c9f1f72b628d9a7faaf7998798e781b53df2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | When the file could not be accessed, we should return 0 for the sizeAndy Shaw2013-06-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Some functions rely on the size to be sure that the file can be read from. Therefore when nativeSize() fails to access the file we should return 0 instead of a random size to prevent these functions from acting as if there is a valid file to read from. Task-number: QTBUG-31571 Change-Id: I589fc199760ba40ef2e63047b2f226cb196f7e56 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Janne Anttila <janne.anttila@digia.com>
* | Q_DISABLE_COPY doesn't need a ; at the endAlbert Astals Cid2013-06-101-1/+1
| | | | | | | | | | | | | | | | | | Fixes warnings when -Wpedantic is enabled Change-Id: I8fcfbfa9bb3a5ab61c85f8cb74660f6f7e459fc0 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Alejandro Exojo Piqueras <suy@badopi.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | QtCore: Fix MSVC-64 warnings about integer truncation.Friedemann Kleint2013-06-082-5/+5
| | | | | | | | | | | | | | | | warning C4267: 'argument' : conversion from 'size_t' to ' int', possible loss of data. Change-Id: I79af7497420d468b5bc7c48c9ae21b86117519a9 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* | QUrl stringprep: fix handling of U+0080: it's prohibitedThiago Macieira2013-06-081-1/+1
| | | | | | | | | | | | | | | | Edge case: a > that should have been >=. Without it, we never ran the rest of the IDN nameprepping. Change-Id: I2276d660de3a70d0c561bb18816820d9a0f47e77 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QUrl stringprep: avoid recalculating the surrogates we already knowThiago Macieira2013-06-081-2/+2
| | | | | | | | | | Change-Id: Icac4e81fff6f7f7fa4f46ec2a08105f8d3d2b403 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QUrl stringprep: fix handling of prohibited charactersThiago Macieira2013-06-081-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RFC 3454 says about prohibited characters (section 2, "Preparation Overview"): 3) Prohibit -- Check for any characters that are not allowed in the output. If any are found, return an error. This is described in section 5. In other words, we mustn't simply strip the output of prohibited characters. We must generate an error if they are present. We do that by clearing the data. We already had tests for prohibited output, but they were indistinguishable from being stripped. So instead add some extra characters so that we can tell whether the label was cleared. Change-Id: I2d95217c27be5e2d54deed0036cb009e3b7f4886 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QUrl stringprep: fix case folding from non-BMP to BMPThiago Macieira2013-06-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When uc > 0xffff (non-BMP character) and l == 1 (replacement is in the BMP), we must use QString::replace so the correct number of characters is replaced. There's one case testing this in tst_qurlinternal, but it is being obscured by another bug (false positive). Change-Id: I32388dd5bef32d4d6804aeeec4904bd5f563e9b9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QUrl stringprep: recalculate the current position if the size changesThiago Macieira2013-06-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | If the case folding operation results in either expansion or reduction of the string, we need to adapt. Reduction happens most often when a non-BMP character is case-folded to a character in the BMP (example: mathematical signs at U+1D400-1D7FF). Expansion happens in the rare case of symbols containing words, like U+2121 ℡ (this is part of the unit test), and one common case: the German sharp S (ß) is expanded to "ss". Change-Id: I1bdbdc908b958a89bf30e4bb648d65dfdd9097f8 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Print directories for QT_DEBUG_PLUGINSKai Koehne2013-06-051-0/+4
| | | | | | | | | | | | | | | | So far we stayed completely silent if the user forgot to deploy all plugins, or deployed them in the wrong way. Change-Id: Idd776c4b4a2ddffd5da08985e5925248c97e0270 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-052-1/+6
|\| | | | | | | Change-Id: Ic6e1ae60f891a6b2b568936204d2e84db4177fb4
| * let configure create the forwarding qconfig.h againOswald Buddenhagen2013-06-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | this avoids that syncqt needs to forward to a yet unexisting file (which will have a yet unknown location, when syncqt is run at packaging time already). the %inject_headers syncqt config variable remains, so it can be told not to purge "foreign" files. Change-Id: I127ff6e0b7d5702fb0acaee9a5b7940b482d3608 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| * Fix typo in QSettings docs.Mitch Curtis2013-05-311-1/+1
| | | | | | | | | | | | Change-Id: I96dc2d57f5cc52c162ba0fd38d20141683847423 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Fix typo in QAlgorithms documentation.Mitch Curtis2013-06-051-1/+1
| | | | | | | | | | Change-Id: Ic9107f427acc1e009779d39e0a204ea81d54aee7 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Prevent negative size in QBitArray, QVector and QVarLengthArray ctors.Mitch Curtis2013-06-053-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As shown in QTBUG-24345, QBitArray will exhibit invalid reads when initialised with a negative size and run under valgrind. QVector and QVarLengthArray both cause a crash if initialised with a negative size. This patch enforces sizes greater than or equal to 0 with asserts and existing if statements, and hence impose no performance penalty for release builds. Task-number: QTBUG-24345 Task-number: QTBUG-30037 Change-Id: I9a969f6016e0a59904a60bbfe9e5360e6f523b87 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Use the GCC inline assembly when building for MinGWThiago Macieira2013-06-041-5/+5
| | | | | | | | | | | | | | | | | | | | | | MinGW has a longstanding problem of providing the MSVC intrinsics that every Windows developer expects to be there. Other projects have run into those problems. So instead just use the GCC inline assembly. Change-Id: I5651f97f9a4dfbf98ebbf063f91f221eab80b224 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Mention QRect's int min/max constraints in detailed description.Mitch Curtis2013-06-041-0/+6
| | | | | | | | | | | | | | Task-number: QTBUG-25732 Change-Id: If330768c3075568f09593ed17f26389d3dec3335 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Make qtbase compile with QT_NO_TEMPORARYFILETasuku Suzuki2013-06-047-4/+43
| | | | | | | | | | | | | | | | Change-Id: Ida2f59bb245ef70bf65f7e8944c4c315d5bc2f81 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-05-312-1/+12
|\| | | | | | | Change-Id: I0a8fe79a80b7720f76e3c0b03cc2c9a769d4009b
| * Fix tst_qtendian autotest build for WEC7.Janne Anttila2013-05-301-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MSVC2008 compiler fo ARM targets fail to compile qToUnaligned when using sizeof(T) inside memcpy fynction. The compiler fails at least when the code is reached through the following macros and templates: -> tst_QtEndian::toLittleEndian -> qToLittleEndian(T src, uchar *dest) -> qToUnaligned(const T src, uchar *dest) The above sequence produces internal compiler error with MSVC2008/ARM builds when called from tst_endian. As a workaround sizeof(T) is called outside memcpy function. Change-Id: Ib4d382c2cebecb6e54bb99fc8fad72db93825fcd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| * Disable precision timers when running MSVC2012 code on pre-Windows 8.Friedemann Kleint2013-05-301-0/+8
| | | | | | | | | | | | | | | | | | | | Precision timers can cause the event loop to lock up when running MSVC2012 code on pre-Windows 8. Task-number: QTBUG-27266 Change-Id: Idd73731e82843d0d140859bab825bc1a54eccf1a Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Fix the host_bins variable in the QtCore pkg-config fileThiago Macieira2013-05-311-1/+1
| | | | | | | | | | | | | | | | The qmake HOST_BINS property has no /raw variant. We need to use the regular one. Change-Id: I38254f77d1039c312913a987353342ce5ed3feec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* | Bump Qt version to 5.1.1Sergio Ahumada2013-05-291-2/+2
|/ | | | | Change-Id: Id5e2e1c69f09e43460e45d8ccf7a430f3052149b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Doc: Removed pages from "technology-apis" group.Jerome Pasion2013-05-271-1/+0
| | | | | | | | "technology-apis" doesn't serve a purpose anymore and its product function is replaced by the new overviews on the landing page. Change-Id: I1e959981fd163966a54bec0d697bed12007c39e6 Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
* Fix parsing of long latin strings in the json parserLars Knoll2013-05-231-1/+2
| | | | | | | | | | | Latin1 strings are usually stored as 8 bit data in the json binary format. But that data structure has a size limitation of 16bit, so we need to fall back to storing the string as 16 bit data if it is too long. Task-number: QTBUG-30946 Change-Id: I0069b1367030b0b2f819fd1f04e34c9e2534a2a3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Fix regression when pasting into QTextEdit from Firefox.Mitch Curtis2013-05-231-1/+3
| | | | | | | | | | Return the codec if one was found by QTextCodec::codecForUtfText, instead of returning the default (UTF-8). Task-number: QTBUG-31293 Change-Id: I95e3260376c00537006b7fbfdc3df5850e1ba657 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Check that files we expect to find actually exist when using a cmake package.Stephen Kelly2013-05-202-15/+36
| | | | | | Change-Id: If7c724daa85df5e29e410b8deb4e69beb43ee8ea Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* restore QProcessEnvironment shared data thread safety on unixOswald Buddenhagen2013-05-203-8/+74
| | | | | | | | | | | | | | | | | implicit sharing together with 'mutable' is a time bomb. we need to protect the nameMap, because concurrent "reads" may try to insert into the hash, which would go boom. we need to protect the key/value of Hash objects, because while the refcounting is atomic, the d pointer assignments are not, which would also go boom. we can simply use a QMutex to protect the whole environment, because it is very cheap in the uncontended case. Task-number: QTBUG-30779 Change-Id: Iaad5720041ca06691d75eb9c6c0e1c120d4a7b46 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix QEventDispatcherBlackberry build when debug is onRafael Roquetto2013-05-201-0/+1
| | | | | | | Change-Id: Ia00d0f32e7d552421cc230ffca25085ab0a3a31e Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QThreadPool: Fix regression from Qt 4 in dealing with priority startsThiago Macieira2013-05-201-1/+1
| | | | | | | | | | | | The optimisation done in cbaf52b09971edf6f3e1458f7dd677b80a1568ed for Qt 5.0 got the order wrong of the comparison. The queue must be sorted in decreasing priority order. But since higher numbers mean higher priority, that means the queue must be sorted in decreasing priority number order. Task-number: QTBUG-29163 Change-Id: Iaf3424b9bb445bf5c71518927f37253cead454f3 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QtCore: fix the number precision in QJsonDocument.toJson()Liang Qi2013-05-201-1/+1
| | | | | | | | | | | | | | In JSON, any number is stored in double. We need to make sure we keep the maximum possible number precision for integer number. In IEEE 754 double format, the significand precision is 53 bits(52 explicityly stored). Autotest is included. qint64 and double work fine. Task-number: QTBUG-28467 Change-Id: I7f857671c50e4334e9329c778f9b4f090f490540 Reviewed-by: Sune Vuorela <sune@vuorela.dk> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix QLocalePrivate object leakingjian liang2013-05-201-1/+1
| | | | | | | | | Set ref count to zero in QLocalePrivate::create() to avoid QLocalePrivate object leaking. Change-Id: I8948c27d59b2038266ab04c6113610b9b4481b45 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add BypassWinowManagerHintJørgen Lind2013-05-202-1/+8
| | | | | Change-Id: Iaf04172aa4fce8d6b354c1c1fc3c376831ee8e91 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fixed WINCE linking error in QProcessBjoern Breitmeyer2013-05-141-0/+5
| | | | | | | | | The error was introduced with 28ee554b37be39c03c231e7b857f71163dc6ea73 Change-Id: If3e51227af3880496ef2da3a18835b36d65bad78 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* install host libraries into -hostprefixOswald Buddenhagen2013-05-132-0/+2
| | | | | | | | | | | | | | ... and introduce -hostlibdir configure option for symmetry. the libraries built for the host have no business in the target prefix. in principle this code would even support dynamically linked host libraries, but that's currently unused. Task-number: QTBUG-30591 Change-Id: I8e600fa4911a020fb0e87fbf7ef2f35647c7c4d5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Ivan Romanov <drizt@land.ru>
* Fix module name in license headers.Stephen Kelly2013-05-101-1/+1
| | | | | Change-Id: I71afbb3170869f3cd0313fb7c707062d1599251c Reviewed-by: Richard J. Moore <rich@kde.org>
* Implement apostrophe in windows cmd argsJørgen Lind2013-05-101-5/+2
| | | | | | | Task-number: QTBUG-15379 Change-Id: I4a2ca942d2dbfa490302858b589e00bd91e25636 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Defer enabling std::atomic on GCC until GCC 4.7Thiago Macieira2013-05-101-1/+5
| | | | | | | | | | The implementation that GCC came with from 4.4 to 4.6 used external locks for most platforms, other than x86. It's unsuitable to be called "atomic" at all. More importantly, it's not behaviour-compatible with Qt's own QBasicAtomic classes. Change-Id: I92a0beab58504e6bd7cd236d358fef905c69821c Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QProcess: leave a warning about the signal with overload, for Qt 6Thiago Macieira2013-05-101-1/+1
| | | | | | | | | | | You can't write: connect(proc, &QProcess::finished, [](){}); because of the overload. Change-Id: I651cc56ee15481392590dc44942d8e814fad75f6 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Make QFlags enum flags (C++11 strict enums) friendlyAlbert Astals Cid2013-05-093-8/+15
| | | | | Change-Id: I9ccb3e4d281a545ca1845db4f6aa7ac6c04e8621 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Utilize the new Q_OS_MACX define.Jake Petroules2013-05-097-17/+17
| | | | | | | | | | All occurrences of `#if defined(Q_OS_MAC) && !defined(Q_OS_IOS)` have been replaced with `#if defined(Q_OS_MACX)`. Change-Id: I5055d9bd1845136beb8ed1c79a8f0f2c0897751a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Repurpose the former Q_OS_MAC synonym "Q_OS_MACX" to mean "OS X".Jake Petroules2013-05-093-13/+29
| | | | | | | | | | | | | | The equivalent was done earlier for qmake, and this will enable developers writing OS X-specific code to use #ifdef Q_OS_MACX as opposed to overly verbose #if defined(Q_OS_MAC) && !defined(Q_OS_IOS). The sole usage of Q_OS_MACX within qtbase has been changed to the now appropriate value and documentation has been updated. Change-Id: I2c59eea02e94b691b705170b2f96a97940fdc756 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix crashes when creating large documentsLars Knoll2013-05-096-16/+64
| | | | | | | | | | | | | Compact an object in regular intervals when inserting data into it, to avoid the object becoming huge. Compact an object/array before inserting into another array or object. Check that the document doesn't get so big it's overflowing the internal data structures. Task-number: QTBUG-29288 Change-Id: Id39d80dac1e7d5a11f40819f41b4b336bce16947 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix a case of connect()ing to signals declared in a base classOlivier Goffart2013-05-091-3/+7
| | | | | | | | | | | | | | Fix connection to pointer to member signal that belongs to the base class, but whose type is a pointer to a member of the derived class. The current code only use the QMetaObject of the type coming from the function type to look up the signal id. But if the signal was casted to a pointer to member function of a derived type, then we also need to look in the base classes Change-Id: Ib98fc38f63942946acb34d9f83c100991d58e4e5 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove references to inexisting enums in Q_ENUMSOlivier Goffart2013-05-081-1/+1
| | | | | | | | | moc currently silently ignores them, but I have a version which display a warning. Change-Id: I9a239cb7e99d40a57a013fb66357c4a6426d6e8b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Avoid a QStringRef -> QString conversion by using the new qt_hash overloadGiuseppe D'Angelo2013-05-081-1/+1
| | | | | | | | | | During qHash refactorings, this line was changed as qt_hash didn't have an overload taking a QStringRef. This causes a performance regression w.r.t. the same code in Qt 4. Task-number: QTBUG-30821 Change-Id: I17b27a54a73cb9061c20f1bd7f79d0c405050edd Reviewed-by: hjk <hjk121@nokiamail.com>
* QUrl: Fix compiler warning about uninitialized varKai Koehne2013-05-081-1/+1
| | | | | | | Fix gcc 4.8.0 warning about potential use of uninitialized variable. Change-Id: I0881b1209e9156323b2710c50256d4bed83930ca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Revert QDateTime serialisation to pre-Qt 5 behaviour.Mitch Curtis2013-05-083-4/+8
| | | | | | | | | | | | | | In Qt 5, I managed to break the guarantee that a deserialised local datetime is the same time of day (potentially different UTC time), regardless of which timezone it was serialised in. This happened after I fixed QTBUG-4057 with If650e7960dca7b6ab44b8233410a6369c41df73a, which serialised datetimes as UTC. This patch reverts QDateTime serialisation to pre-Qt 5 behaviour to restore the guarantee and consequently re-opens QTBUG-4057. Change-Id: Iea877f7ed886f530b928067789b53534e89fe8cb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLocalePrivate: remove unused dataPointerForIndex functionThiago Macieira2013-05-082-14/+0
| | | | | | Change-Id: I0cd3f8a526e11c3df53fe0cbb063e01c5a3564f9 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>