summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
...
* BlackBerry: Prevent superfluous removal of socket notifiersBernd Weimer2013-11-061-12/+11
| | | | | | | | | | | | | | | File descriptors have always been removed from bps before adding them, which lead to an annoying warning. "QEventDispatcherUNIX::registerSocketNotifier()" needs to be called after "ioEvents()" to prevent this. Back-port of qtbase/e9c51a1fdc9092e5589fd6f823ad0e704e293c88 Task-number: QTBUG-34536 Change-Id: I767a15cb2883bc820da5c858613ffb26abc002e4 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Petr Nejedlý <pnejedly@blackberry.com>
* Backport of Qt5 applicationName handlingSamuel Gaist2013-11-022-7/+18
| | | | | | | | | | | | | Currently applicationName returns an empty value unless the user explicitly sets it. Qt 5 is smarter and get the name either based on the application arguments or a platform specific way (e.g. OS X using the menu bar name) if the user didn't set it. Based on f04b46f34e9446417cd5681f511332344679ef30 and 696060134d10d44175970ffd38618544ecdd9387 Change-Id: Ifc17cf4a74fed8cfabb46b3540dfbd64a5452640 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* BlackBerry: improve BPS event lifetime managementJonathan Hoffmann2013-10-312-2/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QEventDispatcherBlackberry::select(), if an event handler called through filterEvent() starts a nested event loop by creating a new QEventLoop, we will recursively enter the select() method again. However, each time bps_get_event() is called, it destroys the last event it handed out before returning the next event. We don't want it to destroy the event that triggered the nested event loop, since there may still be more handlers that need to get that event, once the nested event loop is done and control returns to the outer event loop. So we move an event to a holding channel, which takes ownership of the event. Putting the event on our own channel allows us to manage when it is destroyed, keeping it alive until we know we are done with it. Each recursive call of this function needs to have it's own holding channel, since a channel is a queue, not a stack. However, a recursive call into the select() method happens very rarely compared to the many times this method is called. We don't want to create a holding channel for each time this method is called, only when it is called recursively. Thus we have the instance variable d->holding_channel to use in the common case. We keep track of recursive calls with d->loop_level. If we are in a recursive call, then we create a new holding channel for this run. Backport from qtbase/5cc76dae7e985a7a39d839524dc8ad6475e597f3 Change-Id: Ib3584676d2db5a9a3754a1535d5fb6c9e14f5dbc Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QLocale: Update Portuguese and Greek locales dataEl Mehdi Fekari2013-10-291-1061/+1059
| | | | | | | | | | | * Update timeFormat for Portuguese/Brazil locale. * Update abbreviated day names for Greek locale. Note: Those locales are already fixed in the recent CLDR v23.1 data used in Qt 5.2. Change-Id: I351e3a9ae65dcff4ab6b4787242141c3c9d86e24 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QLocale - Fix Mac date format code translationJohn Layt2013-10-281-29/+76
| | | | | | | | | | | | | | | | | | Mac uses the CLDR format codes which need to be translated into their Qt equivalent. The existing code mistranslates the year code, is outdated for a number of new codes introduced in recent versions of CLDR, and by default accepted any codes it didn't recognize. This change updates support to the latest version of CLDR, fixes the treatment of years, and defaults to ignoring any new format codes added in the future. Back-ported from qtbase/77dc33dcdbe0eec8ddc9059c4e0ff9dde264c5fa Task-number: QTBUG-25057 Change-Id: Ide040eca467cfada46fb0e2010db179a76b3096a Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Introduce Windows version 8.1 and detect by checking the version.Friedemann Kleint2013-10-252-3/+39
| | | | | | | | | Change-Id: I04012218c34f7a95a87fcf2dc7fc095f0e743e67 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> (cherry picked from qtbase/dff6d73d6c37c40790d90bfdf3cb2f6e75c5bfa4)
* Fix sigchld-HandlerH. Rittich2013-10-181-9/+32
| | | | | | | | | | | | | | | | Changed the sigchld-Handler such that the SA_SIGINFO flag is handeled correctly. Furthermore the signal mask is preserved such that the original signal handler is not interrupted when not allowed. Backport of the patch that was added to qtbase (Qt5) in 97279d05822a70da1fb3dab083d823a5f5a008fe also contains the fix from f83fa3c95e9ac6badc393c198c8bc08bc45bea96 . Task-number: QTBUG-32979 Change-Id: Iec7663e7289ea5d95155f52cf8788ebf646cfabd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing interpolator for unsigned int.Jan Arve Saether2013-09-111-0/+3
| | | | | | | | | | | | | Note that there are also some missing interpolators for char, short, long long etc, but those are most likely less common than unsigned int. Task-number: QTBUG-33268 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> (cherry picked from qtbase/09da1f7d1f04f51eca4dc11add2854355fad6cd4) Change-Id: Ieae8c5f66dab0f997522ea7e7990485ecde33e27 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix compile when QT_NO_WARNING_OUTPUT defined without QT_NO_DEBUG_STREAMJonathan Liu2013-09-101-0/+2
| | | | | | | | | | | | | | | qWarning is forward declared as returning QDebug when QT_NO_DEBUG_STREAM is not defined. This conflicts with the declaration of qWarning returning QNoDebug when QT_NO_WARNING_OUTPUT is defined. Avoid forward declaration of qWarning when QT_NO_WARNING_OUTPUT is not defined to fix compilation. This does not apply to Qt 5. Task-number: QTBUG-33301 Change-Id: Ia4750cd63ac404700aedc36f07e5516d4163e9d2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add Q_ASSERT in qAllocMore() function.Leonard Lee2013-08-301-0/+3
| | | | | | | | | | The negative range test is no longer needed in QByteArray's autotest. Task-number: QTBUG-33038 Change-Id: I4d77e78e485b3b64a31dffd99b9fe2c14420d0a2 (partial cherry picked from qtbase commit fb8be9905d5f3216edc3fbb72b8ce1c380737eac) (partial cherry picked from qtbase commit 0ed3cf2a1c487387bbc958317c791c9c53cf5a16) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix crash in QProcess::waitForStarted() on Unix.Christian Strømme2013-08-281-3/+3
| | | | | | | | | | | | Invoking waitForStarted() on a QProcess before or after an unsuccessful call to start() (e.g., with an empty command), would execute FD_SET with an invalid file descriptor and cause the process to abort. The bug can be reliably reproduced on OSX. (cherry-picked from qtbase commit c8d9b17367cfdcb034d11f8a168ca4ae3993e7c3) Task-number: QTBUG-32958 Change-Id: Id25b7781168489281645e21571361ca1a71d43e3 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Update for OS X Mavericks.Jake Petroules2013-08-212-4/+11
| | | | | | | (Qt 4 equivalent of qtbase/bd97768ae54d643270e824f74d152892dbea1b9f) Change-Id: I7ecebd2e185d61a0baeb5b47b802c2f760edeff3 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Use correct mask constant in the Windows event dispatcher.Friedemann Kleint2013-08-201-1/+14
| | | | | | | | | | | | | | Mask out QS_TOUCH, QS_POINTER when running a VS2012-compiled binary on pre-Windows 8 systems. Task-number: QTBUG-32257 Task-number: QTBUG-28513 Task-number: QTBUG-29097 Task-number: QTBUG-29435 Task-number: QTBUG-18852 Change-Id: I33ce3a659a234cb04d3b5ae9d668d193d681be7f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qtbase/54f1d7e2e48b896755aa930ee7e4ecacf51bf977)
* Revert "Disable precision timers when running MSVC2012 code on pre-Windows 8."Friedemann Kleint2013-08-201-5/+1
| | | | | | | | | | | This reverts commit aea654b84713b8085ee0a291e3325b1ca53080aa. Follow-up commit will fix the issue. Task-number: QTBUG-18852 Task-number: QTBUG-27266 Change-Id: Iadbae6b94de6e47e0b9bf428f57b63ffa286e382 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* restore QProcessEnvironment shared data thread safety on unixOswald Buddenhagen2013-08-123-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> (cherry picked from qtbase/85e61297f7b02297641826332dbdbc845a88c34b)
* fix namespaced buildOswald Buddenhagen2013-08-121-2/+2
| | | | | | Change-Id: I9d0a3cb08de5e91807da7f0358c83b6693ebd1ea Reviewed-by: hjk <hjk121@nokiamail.com> (cherry picked from qtbase/da55d48ad731ee2499467b3e93e11eb3b53df89d)
* Remove OS X unsupported warning.Jake Petroules2013-08-101-3/+0
| | | | | | | | | No other platform has such a warning and it really is not important. Change-Id: I70185dff6b0fad11c7a767f787679dc53d04ecc7 (backported from qtbase/cd17b500a85b34c16ff8f4212cf2ff35715040ba) Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Include <new> instead of <ciso646> for libc++ detection.Raphael Kubo da Costa2013-08-061-1/+1
| | | | | | | | | | | | | As usual, MSVC does things differently and its ciso646 header does unexpected things, like #define'ing xor and causing all sorts of breakages. Include <new> instead: it should be as inocuous as ciso646 should have been. No backport because Qt5 does not have QT_NO_STL. Task-number: QTBUG-32773 Change-Id: I01a48ec2c726367e9498aeec4efb42f49d68bbe4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove a left over cast that is now semantically incorrect.Jake Petroules2013-08-051-1/+1
| | | | | | | | | CFPropertyListRef is a typedef for void*, which is why this code was compiling OK prior to this change. Change-Id: I67f2affeeb97459f85eedc8becb5d963557d34c3 (cherry-picked from qtbase commit fb25d6c7f6690402060027422343957c7d8ee718) Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure to also check for null CFPropertyLists.Thiago Macieira2013-08-051-0/+3
| | | | | | | | | | | | | In 1b08e0307dfebe561fbb0819a2d6b53edd8e8e93, I removed the null check by accident. It's possible for the Darwin API to return a null property list. Task-number: QTBUG-30760 Change-Id: Iaf0125767fe4b47c19810b70483a5219e94e4305 (cherry-picked from qtbase commit 96134c6f585963c9d449db17589f21e67519a2a8) Reviewed-by: Denis Dzyubenko <denis@ddenis.info> Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Don't assume that all CFPropertyListRef are CFArrayRefsThiago Macieira2013-08-052-7/+16
| | | | | | | | | | | | We might need more robust code in the future. But at least for this case it looks like a CFStringRef is also a possibility. Task-number: QTBUG-29776 Change-Id: Iaf50835122fcbb7e6e9c7fbf65e31e6143b2bc54 (cherry-picked from qtbase commit 1b08e0307dfebe561fbb0819a2d6b53edd8e8e93) Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Sun CC 5.10 supports Template-Template ParametersSergio Ahumada2013-07-301-2/+4
| | | | | | | | See http://www.oracle.com/technetwork/systems/cccompare-137792.html Task-number: QTBUG-18879 Change-Id: Icb08771527a718c1ce4f0919116c3834cf979be4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add support for the Linux/m68k platformThorsten Glaser2013-07-223-0/+257
| | | | | | | | | | | | | | | Add necessary support code to recognize m68k as an architecture; use GCC builtin atomics like avr32 does. Copy avr32 header, since it was hinted that including it from m68k was not liked. This is not needed in Qt5 because it’s said to automatically use the GCC atomic builtins. Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=660963 Task-number: QTBUG-28237 Change-Id: I6c51405c47549c904899a6971b6cd34b8239c642 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix warning when building objects with a Q_OBJECT macroTobias Hunger2013-07-221-1/+1
| | | | | | | | | | | Do not trigger a self-assign warning when running into code containing a Q_OBJECT macro. Currently this happens a lot e.g. when using clang to build code using Qt. Change-Id: I68995624b18406f337318599e463f36f87486e66 (cherry-picked from qtbase commit 1416f4c595d6078c08f93483695e0b64c7fbb2a7) Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Accept defeat when select(2)ing without a monotonic clockThiago Macieira2013-07-121-6/+2
| | | | | | | | | | | | | | | | | We prefer to use the monotonic clock because it's never affected by time jumps (such as the user changing the date, or the system adjusting for any other reasons, including automatic leap seconds). But if a system doesn't have a monotonic clock, we simply accept the regular, real time clock and hope it doesn't jump. This is better than the current code that never restarts a call. The side-effect is that a 30-second select may become a 3630-second select if someone sets the clock back one hour. Task-number: QTBUG-22301 Change-Id: Ia5a3bb453cd475f45b03637e2549165589fd2524 (cherry-picked from qtbase commit c64d602df3712c0d147b7b689d29f79c700e63bc) Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* QString::normalize(): Fix assertion in some corner caseKonstantin Ritt2013-07-111-4/+3
| | | | | | | | | | | | Don't assume `from` is 0 and the string always starts with a starter code point. This has been fixed for 5.0 as part of Unicode Data & Algorithms update (qtbase:46b78113b22428e6f8540193fcf0e00591dbd724). Task-number: QTBUG-30931 Change-Id: I2030aaf831ebe619b980e55e98d5f5a366dbe3ed Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Bump Qt version to 4.8.6Thiago Macieira2013-07-091-2/+2
| | | | | Change-Id: I91189c8c33591ef866a4478c113f93162afede95 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* qfilesystemengine_mac.cpp is empty => purgeSamuel Gaist2013-07-052-49/+0
| | | | | | | | | | | All mac related qfilesystemengine operations are done in qfilesystemengine_unix. Purging it like commit bd7ca33889139782f3f0063f93ca9c1f39501a17 in qtbase Change-Id: I16ba494b699d731c3cd688cbd34b81cc67851b47 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* BlackBerry: Increased loop level around bps_get_eventBernd Weimer2013-07-021-4/+10
| | | | | | | | | | | This is needed, because bps_get_event can also invoke callbacks. Deferred deletions in such a callback are not executed for instance, because the loop level might already be at its minimum. Backported from qtbase: f62c92b Change-Id: I83d72d773d53b7b84ec590180f6b1131a57e0f46 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* QUrl stringprep: fix handling of U+0080: it's prohibitedThiago Macieira2013-06-211-1/+1
| | | | | | | | | Edge case: a > that should have been >=. Without it, we never ran the rest of the IDN nameprepping. (cherry-picked from qtbase commit 4d93393a6de2d6631979df2bc6d12aa43781dc6f) Change-Id: I2276d660de3a70d0c561bb18816820d9a0f47e77 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QUrl stringprep: avoid recalculating the surrogates we already knowThiago Macieira2013-06-211-2/+2
| | | | | | (cherry-picked from qtbase commit 53388cd8e0451ea375ed250b59f9e89319fb3e1c) Change-Id: Icac4e81fff6f7f7fa4f46ec2a08105f8d3d2b403 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QUrl stringprep: fix handling of prohibited charactersThiago Macieira2013-06-211-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. (cherry-picked from qtbase commit 736a052d93d9c75e51e8f3da733bc8e4a50c39ce) Change-Id: I2d95217c27be5e2d54deed0036cb009e3b7f4886 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QUrl stringprep: fix case folding from non-BMP to BMPThiago Macieira2013-06-211-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_qurl, but it is being obscured by another bug (false positive). (cherry-picked from qtbase commit 86312275197c3fde948035a59c0358162701f9f2) Change-Id: I32388dd5bef32d4d6804aeeec4904bd5f563e9b9 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QUrl stringprep: recalculate the current position if the size changesThiago Macieira2013-06-211-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". (cherry-picked from qtbase commit 2ccf4c32cc593f568581dd237e1e27d39fd965a2) Change-Id: I1bdbdc908b958a89bf30e4bb648d65dfdd9097f8 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QSystemLocale: Fix the time format on BlackBerry 10Mehdi Fekari2013-06-201-2/+2
| | | | | | | | | The time format should depend on the device settings (24 hour format) cherry picked from qtbase/686c94c892006a3e72291ca8971aabf18ea1ec85 Change-Id: I6226486ee1feedc27fab49802a0043619e83659c Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Implement apostrophe in windows cmd args.Leonard Lee2013-06-171-5/+2
| | | | | | | Task-number: QTBUG-15379 Change-Id: I113692983a8c16c56f0f684146d0d32e25d4869d (cherry-picked from qtbase/c1e24f883824ad894aa121568e4fde8553028d95) Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fix crash when re-creating QThreadData after initially destroying itTor Arne Vestbø2013-06-161-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. Cherry-picked from qtbase/46667d604fb2ae11a87c0c075a3d2468d02f7bdb. Change-Id: Iffc372ca530a486cd3efc2237ab02468bdcb5c81 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure QThreadData and QAdoptedThread object is destroyed at app exitjian liang2013-06-161-0/+7
| | | | | | | | | | | | | | | | Task-number: QTBUG-30134 Restore the lines in qcoreapplication.cpp removed by commit 950b35cf97ad398f97883efd2a18ee97994a8a9c to ensure QThreadData and QAdoptedThread object of main thread is destroyed at application exit. We don't set QCoreApplicationPriavte::theMainThread to 0 as before since it will be set to zero in QThreadData::~QThreadData() Cherry-picked from qtbase/7dc622290bb8e81af634034f443e25be0d6d48a3. Change-Id: I6bc62235d0aff7818ca9a9cad45625b2777afc55 Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clear the current thread data for the main threadThiago Macieira2013-06-165-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | This avoids crashes accessing deleted memory when creating a QObject after the last QObject had been deleted, like a qDebug() in global destructors. ==41000== Invalid read of size 4 ==41000== at 0x5F01ED5: bool QBasicAtomicOps<4>::ref<int>(int&) (qatomic_x86.h:208) ==41000== by 0x5F01309: QBasicAtomicInteger<int>::ref() (qbasicatomic.h:147) ==41000== by 0x5F24051: QThreadData::ref() (qthread.cpp:100) ==41000== by 0x614A984: QObject::QObject(QObject*) (qobject.cpp:681) ==41000== Address 0x6ee73f0 is 0 bytes inside a block of size 152 free'd ==41000== at 0x4A0736C: operator delete(void*) (vg_replace_malloc.c:480) ==41000== by 0x5F240BF: QThreadData::deref() (qthread.cpp:109) ==41000== by 0x6113F6B: QCoreApplicationData::~QCoreApplicationData() (qcoreapplication.cpp:268) The comment right above the change in qthread.cpp looks eerily similar to the problem I'm trying to fix. However, the actual change that introduced the change is not in the Qt public history, so we can't know for sure what the problem was then. Cherry-picked from qtbase/950b35cf97ad398f97883efd2a18ee97994a8a9c. Change-Id: Ic4072c15529e2ae94ea36fbd0340cf5ee61413d2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Disable precision timers when running MSVC2012 code on pre-Windows 8.Friedemann Kleint2013-06-041-1/+5
| | | | | | | | | | | 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> (cherry picked from qtbase/aa1b4c0943187d82e0c313b93559e99226a9c75a)
* Fix QLocale::standaloneMonthName when d->m_data == systemData()El Mehdi Fekari2013-05-216-3/+17
| | | | | | | | | | | | | | | | | At the moment if d->m_data == systemData() it calls systemLocale()->query but forgets about the standalone part so you get the wrong data This patch introduces the new enums so that backends can implement properly the standaloneMonthName feature properly. At the moment the Windows and Mac ones still return the monthName, the Unix and Blackberry ones return the data we store in months_data. cherry picked from qtbase/b1de018e9a1efcd0f9e298ae4c865197feb47895 Change-Id: I1054420dc696ed2be0d52bdc6567ebaf202faf12 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* BlackBerry: Revised error handling in event dispatcherBernd Weimer2013-05-151-40/+42
| | | | | | | | | | | | | Added an upper bound check for socket notifier file descriptors. Too high FDs have been a real source of failure. Added compiler hints to allow error-free code path run faster (errors are highly unlikely) and adjusted warning messages (some were misleading and too long). Backported from qtbase: ebd5de1 Change-Id: Ib982f853ee803447bdcaf22aed310697a36b4ccf Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
* Special-case the forward declaration of STL types for libc++.Raphael Kubo da Costa2013-05-111-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is somewhat of a follow-up to 5210d47aa66214e3cb16f394d0510a91f770c1b1. libc++ declares the STL types in an inline namespace within the "std" one if clang is used. If one includes a header such as <iterator> before a Qt one and builds with QT_NO_STL, the following ends up happening: // <iterator> namespace std { inline namespace __1 { struct random_access_iterator ... ; } } // qiterator.h #ifdef QT_NO_STL namespace std { struct random_access_iterator; } #endif qiterator.h's declaration shadows the original one, and the compiler complains random_access_iterator lacks an actual declaration. Solve this by checking for libc++ and forward-declaring the iterator types we need within the same inline namespace. Not backported from qtbase because QT_NO_STL does not exist in Qt 5. Change-Id: I6742d540f6538a30aa060a4447c288cfb9cd781d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Check that 3DNow! instructions are supported before including mm3dnow.h.Raphael Kubo da Costa2013-05-101-1/+1
| | | | | | | | | | | | | | | | | | Include mm3dnow.h the way we already include the (S)SSE{3,4} and AVX instruction headers: by checking that the compiler is set to support those instructions besides verifying that QT_HAVE_3DNOW evalues to true (which only means the compiler supported them when the build was being configured). This has not caused a problem in most cases so far because GCC protects its mm3dnow.h header with an #ifdef __3dNOW__ (contrary to what it does on, say, pmmintrin.h). clang's mm3dnow.h, on the other hand, does not have that check and can fail if -march is set to, for example, i386 or i486. Not backported from qt5 because qtbase because qsimd_p.h does not include the 3DNow! headers after commit a1b30b49ef09bef2e97b9a0622bf7ad622678fee. Change-Id: I15ab5e936c71c55f89c3f25777ab27fbd262e9cd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make QContiguousCache with zero capacity not crashThiago Macieira2013-05-071-0/+6
| | | | | | | | | | | These containers don't make sense and will just result in no action being taken (all items added will simply be discarded), but it shouldn't crash due to a division by zero. Task-number: QTBUG-27339 Change-Id: Ib9acf5c0a9a826e6853e7beaf5e56511fde98dc6 (cherry-picked from qt5 commit 320c4e31e124f99601399d00935362b587c77510) Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Make Qt 4.8 also compile with the LSB SDK on LinuxThiago Macieira2013-05-062-8/+8
| | | | | | | | | | | Generate worse code. This is similar to Qt5 commits 46bfd84fdc24fa3e3e721a5dda6cfbebe75be073 and c69106d1bf66d64e046c4f639542457151187dfc. Task-number: QTBUG-25336 Change-Id: Idd61c23d2b528db9d8c7895df008b9c1b0e2a2a4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QLocale: Add fr_MA localeEl Mehdi Fekari2013-05-031-868/+873
| | | | | | | | French_Morocco locale was introduced in CLDRv22.1 and already exists in Qt5 Change-Id: I4f0452f421cf074eb2c4fae22351d430d5f02e42 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QNonContiguousByteDevice: reset() instead of seek() if possiblePeter Hartmann2013-04-271-2/+2
| | | | | | | | | | ... because e.g. QHttpMultiPartIODevice does not implement seek at all (QTBUG-30295), which would make resetting such a device fail. (cherry picked from commit 804a067846cd90e3ca31f985d539c8d75d654d82) Change-Id: I8ba1ef76cc6e7f5ebf0b39c9a75e3aea26980b82 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QThreadDataPrivate: fix data race on canWait boolean.David Faure2013-04-233-3/+10
| | | | | | | | | | postEvent() accesses it with the postEventList mutex locked, but processEvent() was checking it without any mutex locked. Change-Id: I31bbb50f7a1c337067b8e3de16ee7cd11400b517 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from qtbase/bf3a5ccef13d568662f027be62280aba1f73bada) Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Rename qAbs Function for timevalDavid E. Narváez2013-04-131-3/+2
| | | | | | | | | | | This decouples it from qAbs which is declared as a constexpr under certain compilation flags and enables for qtbase to be compiled with GCC 4.8 Change-Id: I78e02256ffc8b460ca74ae5241e77dfac4e09ba9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry-picked from qtbase commit d9ff510f02bba63dabe7a081a68296056a89ae4c) Reviewed-by: Olivier Goffart <ogoffart@woboq.com>