- 10 Mar, 2016 - 15 commits
-
-
Joerg Bornemann authored
Suppose a client connects while the QLocalServer is still in the loop that calls addListener. The connection would SetEvent(eventHandle), but every call to ConnectNamedPipe would ResetEvent(eventHandle). Thus, the connection is never detected by the notifier on eventHandle. Callers of addListener must check the connection state of every listener to make sure that no client connected while setting up listeners. Task-number: QTBUG-49254 Change-Id: Ia961927ea76973708e6e3f73510695eb5d6a0e4c Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Allan Sandfeld Jensen authored
Only two tests inside tst_qstatictext required private symbols, so we can enable the rest on all builds. Change-Id: Id222ba01d9676c40b6447c1526ee127fcc2090d3 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Joerg Bornemann authored
In one code path the test checked for the emission of a readyRead() signal without waiting for it. This code path was never hit, neither on Windows nor on Unix platforms. Change-Id: Ifbe464400a2a1ba8eab49bd60315289040e6bbde Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Edward Welbourne authored
QNetworkAccessManager::createRequest() had three checks relevant only to GET and HEAD requests; rather than testing for this in each of the cases, test for it once and skip all three if it fails. Tidied up the residue of conditionals in the process. Change-Id: I7baee8067a03afdc7cb0a77f1a50759dc4233843 Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Edward Welbourne authored
QUrl::setScheme() parses and canonicalises the scheme, so that scheme() always returns a lower-case string anyway; no need to .toLower() it. Change-Id: Ied00814b63f159386a42552dcf06346ee56f9f97 Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Olivier Goffart authored
Sometimes, in the .cpp, the declaration has the argument name in comments because it is not used (instead of using Q_UNUSED). The old qdoc could parse that, but once clang is used, these comments are not seen anymore. So add the argument names to the headers. This is also good for things like auto completion, which uses only the header to know what the argument name is. I grepped for " */)" and made sure all the functions that are documented have the right arguments. I also added the name to all the function around for consistency. Change-Id: I1aaa37e25a1985f7f51653f047a1ac2633242b56 Reviewed-by:
Marc Mutz <marc.mutz@kdab.com> Reviewed-by:
Martin Smith <martin.smith@theqtcompany.com>
-
Friedemann Kleint authored
Factor out function to check on the pixel color that outputs a verbose message on failure. Change-Id: I2331fe45f35327d1ff8ae547a58d93a2e6fe9184 Reviewed-by:
Simon Hausmann <simon.hausmann@theqtcompany.com>
-
Marc Mutz authored
Found by UBSan: qmake/library/qmakeparser.cpp:278:33: runtime error: null pointer passed as argument 2, which is declared to never be null Guard the call. Change-Id: I99341ab439a511f366dae9344ddcc8727c33b9b6 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Oswald Buddenhagen authored
Task-number: QTBUG-51775 Change-Id: I8d9442bfd5084f1670b79dfdd422638bc62780aa Reviewed-by:
Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-
Allan Sandfeld Jensen authored
If Xft enabled font antialiasing, QFont::NoAntialias would have no effect as it would be overridden. Change-Id: I4dae264bc6674ae81f181cc9ce85851174d42544 Reviewed-by:
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
-
Eskil Abrahamsen Blomfeldt authored
The -android-ndk-host argument to configure existed in the shell script, but not in the Windows version. When using a 64-bit NDK but a 32-bit host compiler (which is what we bundle with our SDK), we would not detect the correct NDK host, making it impossible to build Qt with this combo. [ChangeLog][Android] Added -android-ndk-host configure option on Windows. Change-Id: Ie6a92b66e6875ed53f46fe41ecced70c3ec67585 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Marc Mutz authored
Found by UBSan: qmimemagicrule.cpp:166:53: runtime error: load of misaligned address 0x00000124bcb9 for type 'const short unsigned int', which requires 2 byte alignment qmimemagicrule.cpp:166:53: runtime error: load of misaligned address 0x00000124bcb9 for type 'const unsigned int', which requires 4 byte alignment Fix by using new qUnalignedLoad<T>() instead of a load through a type-punned pointer and misaligned pointer. Change-Id: I6b876f1ce7e01369fbb25a51263d1ad04be07d52 Reviewed-by:
David Faure <david.faure@kdab.com>
-
Friedemann Kleint authored
Remove placeholder formatting and add noquote. Change-Id: I4a89f88778caf007ce42bbf57edfb514fe76bcdb Reviewed-by:
Kai Koehne <kai.koehne@theqtcompany.com>
-
Marc Mutz authored
Found by UBSan: qjsonparser.cpp:741:30: runtime error: store to misaligned address 0x0000019b1e94 for type 'quint64', which requires 8 byte alignment Fix by using the qToLittleEndian() overload that can store to misaligned memory. Change-Id: Ib84bd30b13c68f7fdb8870c9fbbfac15cff0112d Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-
Marc Mutz authored
Signed integer overflows and underflows are undefined behavior. A test that invokes UB tests nothing, because the standard permits any outcome. Fix by guarding the respective operations so they are not executed if they would overflow or underflow. Change-Id: I40354ee88f40e4b47b70eac7790dc3a79ac70a57 Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-
- 09 Mar, 2016 - 12 commits
-
-
Gabriel de Dietrich authored
This is quite an unlikely scenario, but not impossible. It could be that the wheel widget is destroyed during an update phase event. In that case, wheel_widget would be a dangling pointer for any subsequent wheel event. We protect against this with a QPointer. However, that would mean that if the next wheel event were to be an end phase event, that event would be lost. So we go through the usual code path, except that we won't set wheel_widget in the case of an end phase event. Change-Id: I59a912b845dcc249e1edc60b4dc28bf308d807d9 Reviewed-by:
Shawn Rutledge <shawn.rutledge@theqtcompany.com>
-
Marc Mutz authored
This warning is triggered when we try to apply the Q_DECL_HIDDEN attribute to a class in an unnamed namespace. Such classes are already not exported. qobjectdefs.h:175:108: warning: ‘visibility’ attribute ignored [-Wattributes] qobjectdefs.h:198:108: warning: ‘visibility’ attribute ignored [-Wattributes] Added a test on gadgets (and QObjects) in unnamed namespaces, because qtbase currently does not contain such Q_GADGETs. Done-with: Thiago Macieira <thiago.macieira@intel.com> Change-Id: Ic747cc2ab45e4dc6bb70ffff1438c747b05c5672 Reviewed-by:
Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-
Dyami Caliri authored
Some embedded servers use LF to mark the end of an individual header, but use CRLF to mark the end of all the headers. The GoPro WiFi interface does this, as an example. Change-Id: I227ab73622c84f439a6cf8703d020393c4d8bf69 Reviewed-by:
Marc Mutz <marc.mutz@kdab.com> Reviewed-by:
Markus Goetz (Woboq GmbH) <markus@woboq.com>
-
Shawn Rutledge authored
Task-number: QTBUG-51617 Change-Id: Ic1d258c56165947ff821b1bf4d044bcf29b41a3b Reviewed-by:
Laszlo Agocs <laszlo.agocs@theqtcompany.com>
-
Friedemann Kleint authored
It now exists in QtGui. Task-number: QTBUG-48849 Change-Id: I9107c96e0010252bc50bcb02ef006cb46bd942df Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
-
Jarek Kobus authored
Instead of just QVariant(enum_value). Task-number: QTBUG-49383 Change-Id: Id57c65b68d4328816046bc35301dc6afba47b727 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
-
Friedemann Kleint authored
Previously, the macro Q_OS_WIN64 was checked, causing warnings: tools\qstring.cpp(6183): warning C4311: 'reinterpret_cast': pointer truncation from 'void *' to 'unsigned long' tools\qstring.cpp(6183): warning C4302: 'reinterpret_cast': truncation from 'void *' to 'unsigned long' when compiling WinRT/64bit, where it is not defined. Change-Id: Ib9d8405108c85170aba18b13f9c64083136bc5ee Reviewed-by:
Maurice Kalinowski <maurice.kalinowski@theqtcompany.com> Reviewed-by:
Marc Mutz <marc.mutz@kdab.com>
-
Marc Mutz authored
As found by GCC 6: tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp:1476:9: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] tn += ">"; ^~ tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp:1474:5: note: ...this ‘if’ clause, but it is not if (tn.endsWith('>')) ^~ Fix += argument from char[2] to char as a drive-by. Change-Id: I814dc58830934cac7fcf81eb7fd7564b2abeb631 Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by:
Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
-
Marc Mutz authored
The code infers from the presence of an address in a QHash<QGesture *, ...> that the address belongs to a QGesture. So far that is fine enough. But in order to perform the lookup, it static_cast<>s the QObject* argument to a QGesture* for the QHash:: contains() call. Even though the pointer is not dereferenced, the cast is UB. Says UBSan: qgesturemanager.cpp:558:73: runtime error: downcast of address 0x2ab83364f3a0 which does not point to an object of type 'QGesture' 0x2ab83364f3a0: note: object is of type 'QDBusConnectionManager' which is a particularly hideous error message because of the constantly-changing completely-unrelated actual type in the second line of the message: 52 QDBusConnectionManager 19 QSocketNotifier 14 QFusionStyle 13 QAction 6 QApplication 3 QGraphicsWidget 1 Window 1 TestRunnable 1 RectWidget 1 QTimer 1 QSingleShotTimer 1 QOffscreenSurface 1 QGraphicsProxyWidget 1 QDefaultAnimationDriver 1 QDBusPendingCallWatcherHelper This error is also _very_ common, triggered 116 times in a single run of make -C tests/auto check. Fix by using qobject_cast first and then doing the lookup only when the cast succeeded. Depending on the performance of qobject_cast<>, this may actually perform better, too. Change-Id: I884ec7d885711acc3c1d004ce93c628268d8fc18 Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-
Marc Mutz authored
Found by UBSan: src/corelib/tools/qstring.cpp:587:42: runtime error: load of misaligned address 0x2acbf4b7551b for type 'const long long int', which requires 8 byte alignment src/corelib/json/qjson_p.h:405:30: runtime error: store to misaligned address 0x0000019b1e52 for type 'quint64', which requires 8 byte alignment src/corelib/tools/qhash.cpp:116:27: runtime error: load of misaligned address 0x2b8f9ce80e85 for type 'const qlonglong', which requires 8 byte alignment src/corelib/tools/qhash.cpp:133:26: runtime error: load of misaligned address 0x2b8f9ce80e8d for type 'const ushort', which requires 2 byte alignment Fix by memcpy()ing into a local variable. Wrap this trick in template functions in qsimd_p.h. These are marked as always- inline and use __builtin_memcpy() where available in an attempt to avoid the memcpy() function call overhead in debug builds. While this looks prohibitively expensive, from the pov of the C++ abstract machine, it is 100% equivalent, except for the absence of undefined behavior. In one case, the cast produces a local temporary which is then copied into the function, and in the other case, that local variable comes from return value of qUnalignedLoad(). Consequently, GCC compiles these two versions into identical assembler code (only verfied for ucstrncmp, but there's no reason to believe that it wouldn't hold for the other cases, too). Task-number: QTBUG-51651 Change-Id: Ia50d4a1d7580b6f803e0895c9f3d89c7da37840c Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by:
Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
-
Marc Mutz authored
As reported by ubsan: src/gui/kernel/qplatformintegration.cpp:463:10: runtime error: downcast of address 0x7ffdc2942490 which does not point to an object of type 'QGuiApplication' 0x7ffdc2942490: note: object is of type 'QCoreApplication' src/gui/kernel/qplatformintegration.cpp:466:14: runtime error: downcast of address 0x7ffdc2942490 which does not point to an object of type 'QGuiApplication' 0x7ffdc2942490: note: object is of type 'QCoreApplication' src/gui/kernel/qplatformintegration.cpp:466:43: runtime error: member call on address 0x7ffdc2942490 which does not point to an object of type 'QGuiApplication' 0x7ffdc2942490: note: object is of type 'QCoreApplication' to name just a few which are reported when running gui and widget auto-tests; there're definitely more where these came from. This is caused by QCoreApplication::init() being called from the QCoreApplication ctor, calling virtual functions on Q*AppPrivate, which happen to attempt, in this case, to emit QGuiApp signals. At that point in time, the QGuiApplication ctor has not entered the constructor body, ergo the object is still a QCoreApplication, and calling the signal, as a member function on the derived class, invokes UB. Fix by cleaning up the wild mix of initialization functions used in this hierarchy. The cleanup restores the 1. Q*ApplicationPrivate::Q*ApplicationPrivate() 2. Q*ApplicationPrivate::init(), calling each base class' init() as the first thing two-stage construction pattern commonly used elsewhere in Qt to make sure that the public class' object is fully constructed by the time each level's Private::init() is called. Change-Id: I290402b3232315d7ed687c97e740bfbdbd3ecd1a Reviewed-by:
Lars Knoll <lars.knoll@theqtcompany.com>
-
Marc Mutz authored
Found by UBSan: src/gui/painting/qcosmeticstroker.cpp:150:55: runtime error: index -1 out of bounds for type 'QT_FT_Span_ [255]' src/gui/painting/qcosmeticstroker.cpp:150:99: runtime error: index -1 out of bounds for type 'QT_FT_Span_ [255]' src/gui/painting/qcosmeticstroker.cpp:151:55: runtime error: index -1 out of bounds for type 'QT_FT_Span_ [255]' That code path makes no sense if no span has been populated yet, so skip the whole block if current_span == 0. Change-Id: I832b989e89c118dc48ab5add3a28bb44c1936a76 Reviewed-by:
Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
-
- 08 Mar, 2016 - 7 commits
-
-
Peter Seiderer authored
There is no test for c++ standard support for the host build (only for the target compiler/build) which leads to trouble in some cross compiling environments (old host compiler, new cross compiler): g++: error: unrecognized command line option ‘-std=c++1z’ So disable c++ standard compiler flags unconditionally for host builds. Task-number: QTBUG-51644 Change-Id: Ifb3042e125fe199a7e081740d1171d26ccacf0c5 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Friedemann Kleint authored
tst_qkeyevent.cpp(140): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) Change-Id: Id3e0eea125f7f7ec13f9b9428e034b922d2ce204 Reviewed-by:
Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
-
Edward Welbourne authored
Change-Id: Ic900bf000cec52b3ebf0fd0fc61f42252f3200e6 Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Edward Welbourne authored
An if with no side-effects in its test and an empty body is a no-op. An else block with nothing but a no-op in it is a no-op. A no-op without even pedagogic value is just a distraction. Change-Id: I224831a325e6b770d0a99d726d96f73da4b8c11f Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Edward Welbourne authored
Three checks of the same #if managed to save repetition of (if I felt charitable) three shared lines, compared to combining the three into one, which leaves the code easier to read (and obviates the need for one of the "shared" lines). Split a long line while moving it. Change-Id: I762d10ae1df1224c749206b8eb490bafd7ea4900 Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Edward Welbourne authored
Having a variable in which to store a function's return in two branches of a switch in order to return if either was true saved little relative to just testing the function in each case and returning in situ, which reads more clearly. Change-Id: Ibd95a95721eaa6fc4861b10e723038b96caf269a Reviewed-by:
Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
-
Lars Knoll authored
An empty read or a failed write on the underlying QIODevice of the text stream would lead to an early return where we wouldn't correctly restore the QIODevice::Text flag of the io device. Change-Id: I5b632f45dea6ede3f408113556c3dad1b96574e2 Task-number: QTBUG-47176 Reviewed-by:
Marc Mutz <marc.mutz@kdab.com> Reviewed-by:
Simon Hausmann <simon.hausmann@theqtcompany.com>
-
- 07 Mar, 2016 - 6 commits
-
-
Friedemann Kleint authored
Define WINVER, _WIN32_WINNT as 0x501 (Windows XP) in qt_windows.h. Remove definitions of the same/lower versions and unneeded definitions in other places. Remove definition for Borland compiler. Task-number: QTBUG-51673 Change-Id: I2a344a7f7cf78b2afbf45dcdf8bf2a19b93f0a07 Reviewed-by:
Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Marc Mutz authored
Found by UBSan: src/testlib/qtestspontaneevent.h:95:38: runtime error: member call on address 0x7ffc33019650 which does not point to an object of type 'QSpontaneKeyEvent' 0x7ffc33019650: note: object is of type 'QMouseEvent' 83 2b 00 00 98 e8 fa 8e 83 2b 00 00 00 00 00 00 00 00 00 00 02 00 04 00 00 00 00 00 00 00 00 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QMouseEvent' src/testlib/qtestspontaneevent.h:95:38: runtime error: member call on address 0x7ffc330196e0 which does not point to an object of type 'QSpontaneKeyEvent' 0x7ffc330196e0: note: object is of type 'QKeyEvent' 00 00 00 00 f8 e8 fa 8e 83 2b 00 00 00 00 00 00 00 00 00 00 07 00 04 00 00 00 00 00 00 00 00 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QKeyEvent' Fix by providing setSpontaneous() on QEvent as a private function and befriending QSpontaneKeyEvent. Make setSpontaneous() always-inline to avoid BiC between 5.6.0 and 5.6.1. Change-Id: Ic60d82ed6a858f4f13f41fa3d2d1db6e808896b7 Reviewed-by:
Lars Knoll <lars.knoll@theqtcompany.com>
-
Dmitry Shachnev authored
Task-number: QTBUG-51681 Change-Id: I63266c33342f02f4d1a5ea5786f5fbc5a1b421b3 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
-
Kai Koehne authored
This is now maintained in qtwebengine module. Change-Id: Id468be297dfd0a28920fb92d4ba793ff3d3ceab2 Reviewed-by:
Topi Reiniö <topi.reinio@theqtcompany.com>
-
Kai Koehne authored
With the introduction of QtInfoMsg in commit ef6279fd we also changed the mapping of Qt to slog2 levels: QtInfoMsg now ends up as SLOG2_DEBUG1, instead of SLOG2_INFO. Anyhow, we didn't change the default buffer verbosity level accordingly. Task-number: QTBUG-51378 Change-Id: Ia464f9e5a31e19413902e877d4f2be0ba6d340db Reviewed-by:
Dan Cape <dcape@qnx.com> Reviewed-by:
Janne Koskinen <janne.p.koskinen@theqtcompany.com> Reviewed-by:
Rafael Roquetto <rafael.roquetto@kdab.com>
-
Oswald Buddenhagen authored
Change-Id: I9fa42d9afa726f52390a2b01637e6f4e9b2fb537 Reviewed-by:
Simon Hausmann <simon.hausmann@theqtcompany.com>
-