Commit Graph

25396 Commits

Author SHA1 Message Date
Boris Nagaev
45fe3f1cde configure: fix log corruption with option -v
This bug occurs if ./configure is called with -v on systems on
which fd proc entries point to the files/devices they are open
on instead of being magic nodes which would basically dup() the
actual fds (e.g., Linux).

In this case, the command "tee $tty" appends to /dev/stderr, which
may be already opened by the parent process. This breaks the log file.

Normally, the log file starts with

 This is the Qt Open Source Edition.
 ...

but with `-v` flag it would start with output of awkprog and maybe
some zero bytes. Zero bytes are observed on Debian Wheezy.

 DEFAULT_INCDIRS=...
 ...
 ^@^@^@^@^@^@^@^@^@^@^@^@...
 Done running configuration tests.
 ...

To fix this problem, the output of `...` is saved to a variable, and
then eval'd and echo'd (if -v).

This solution was found by Tony Theodore.
https://github.com/mxe/mxe/issues/938#issuecomment-149770348

Change-Id: Id0c28598890e813774cc92f38ee46a0697b34e77
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-10-22 19:13:08 +00:00
Friedemann Kleint
456f721917 tests/auto/corelib: Remove some placeholder formatting.
Use QByteArray/QString addition instead in loops and for
test row names.

Change-Id: Ieffb429efdc14aa5932b3fcdef5a18e13a62d35f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-22 03:54:29 +00:00
Friedemann Kleint
acdd4850a4 tests/auto/other: Remove some placeholder formatting.
Use QByteArray/QString addition instead in loops and for
test row names.

Change-Id: Iae76d852a1657bfb6d88e84515f30bd2f1dece6b
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-22 03:53:22 +00:00
Timur Pocheptsov
f32f75ae1b Secure Transport SSL backend - add a missing cipher suite
tst_qsslsocket::sessionCipher fails starting from OS X 10.11, since we
do not recognize ECDHE-RSA-AES256-GCM-SHA384 (and the resulting 'sessionCipher'
isNull).

Change-Id: I37f51a1627c25f03a30172b245be8142d179affa
Task-number: QTBUG-48881
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-10-22 03:36:45 +00:00
Alex Trotsenko
43b6101df3 QRingBuffer: improve skip() performance
Use free() instead of read(0, length) call.

Change-Id: I284e2099a3fb639cb40525ae2ca7fea0d09a620f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-20 14:44:21 +00:00
Ulf Hermann
bafbf3b872 Provide a simpler and safer version of qdtoa()
The new version returns a QString instead of a char * that has to be
manually free()'d by the user. Also, it does away with most of the
parameters so that we can replace the implementation with something
saner without mapping all those modes between the implementations.

Change-Id: I42ff95648e7955b9e74eb0f459a1fdedc1ad7efb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-10-20 08:38:01 +00:00
Friedemann Kleint
52d5b27239 tests/auto/widgets: Remove some placeholder formatting.
Use QByteArray/QString addition instead in loops and for
test row names.

Change-Id: Ia067cd966bf13506e6ca19925eae3158da027b83
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-19 12:39:16 +00:00
Friedemann Kleint
240d768ca6 tests/auto/network: Remove some placeholder formatting.
Use QByteArray/QString addition instead in loops and for
test row names.

Change-Id: I7974ace5b34f2da43e7511044e80de1e733245ac
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-19 12:38:28 +00:00
Friedemann Kleint
733ac31ccc tests/auto/gui: Remove some placeholder formatting.
Use QByteArray/QString addition instead in loops and for
test row names.

Change-Id: I31adb60bdaf7ea243143a9244b6c4f66f38b189d
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-19 08:06:53 +00:00
Sérgio Martins
71ae742c1f headersclean: s/QT_USE_FAST_CONCATENATION/QT_USE_QSTRINGBUILDER
The former is meaningless nowadays.

Change-Id: I27c7eb0e924f3f2e9b73185f1b198909aeb6b031
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-19 07:25:26 +00:00
Louai Al-Khanji
bd8d5810dd Fix avx512 feature test
The check was broken on non-bash and producing errors like this:

/home/louai/work/qt5/qtbase/configure: 4528: [: Illegal number:

Change-Id: I5e78ad002cd7cfb401f2646510e0923f77c55f98
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-10-19 02:12:04 +00:00
Thiago Macieira
f5eeadb92d Compile qmake and configure.exe in C++11 mode
Since the Qt headers require them now, we need to ensure that happens
properly.

Change-Id: Ib306f8f647014b399b87ffff13f14196c2c75bef
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-18 04:48:36 +00:00
Thiago Macieira
f430521392 Update mkspecs to use "c++11" instead of "c++0x"
We no longer support any compilers that don't know the actual version
number of the standard.

Change-Id: Ib056b47dde3341ef9a52ffff13ef154791dd0d22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-10-18 04:46:45 +00:00
Marc Mutz
3845d1b830 QMetaObjectBuilder: replace index-based for loops with C++11 range-for
...for the recently-introduced std::vector objects
(QVector would detach).

Also, as a drive-by, reorder two comparisons so
the cheaper one is first, twice.

Saves 1700B of text size on GCC 4.9 optimized C++11
AMD64 Linux builds.

Change-Id: I05a29ef1f2e67c98d26236c2cc40a13856a91af6
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-17 11:26:27 +00:00
Daiwei Li
d40839db2f Android: Update splash screen in onConfigurationChanged
When the device orientation changes, we should set the background
to a drawable appropriate for that orientation.

Task-number: QTBUG-44238
Change-Id: I4ea50aedc704060c0b35c2d35b75cbaed3b4979a
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-10-16 16:32:56 +00:00
Thiago Macieira
6f298be076 Add the QT_HAS_xxx macros for post-C++11 feature testing
And for compiler extensions. QT_HAS_BUILTIN and QT_HAS_ATTRIBUTE will
come in handy.

Change-Id: I255870833a024a36adf6ffff13ecf06624bfc1ef
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-16 04:02:24 +00:00
Thiago Macieira
3d52b05a63 Add QNetworkInterface::interface{IndexFromName,NameFromIndex}
These are for faster lookups between ID and name when one doesn't need
the full information set about the interface.

Change-Id: I7de033f80b0e4431b7f1ffff13f98d448a705c3e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-10-15 20:32:10 +00:00
Rainer Keller
7db9c610f1 Add processor types to blacklist keywords
This allows to disable tests that do not work on ARM machines.

Change-Id: I80b54da2978479e037b73ca3af87567e8d9d1b60
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-10-15 14:00:34 +00:00
Alex Trotsenko
53569c1383 QIODevice::seek(): remove unnecessary check
At this point, the buffer is always not empty, as otherwise the offset
could not be smaller than it.

Change-Id: Iec04c0463623c4ed1e86bbcba2240653f110e315
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-10-15 13:58:56 +00:00
Liang Qi
4456984da7 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	tests/auto/corelib/io/qfile/tst_qfile.cpp
	tests/auto/corelib/io/qprocess/tst_qprocess.cpp
	tests/auto/corelib/tools/qversionnumber/qversionnumber.pro

Change-Id: Ia93ce500349d96a2fbf0b4a37b73f088cc505c6e
2015-10-14 15:45:35 +02:00
Tim Blechmann
2811216973 Windows: Open GL blacklist - Add add intel hd graphics 3000 devices
the windows driver for Intel HD Graphics 3000 is buggy (crashes on
initialization) and according to intel, this driver won't receive any
bugfixes. device IDs taken from
http://www.pcidatabase.com/search.php?device_search_str=graphics

Task-number: QTBUG-42240
Change-Id: Ib846d37f67d901060d1318f3f211a5e5dc4f6814
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-10-14 11:40:11 +00:00
Laszlo Agocs
0a203bf753 Separate KMS and GBM tests
KMS is no longer a platform plugin so the relevant leftover bits are
now removed.

As the introduction of the EGLDevice-based backend for eglfs shows,
using DRM/KMS is not tied to GBM, separate buffer management
approaches, like EGLStreams, work fine as well. Therefore separate KMS
from GBM and remove the EGL and GLES dependency in the tests - this
way there is nothing preventing us from using GBM without GL for
example.

Change-Id: Id7ebe172b44b315f9a637892237d2bb62d99aed2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-10-14 11:39:26 +00:00
Laszlo Agocs
f0d21f6921 Add support for the Jetson TK1 Pro using EGLDevice
For now we pick one crtc and find the corresponding layer. If this is
not desired, set QT_QPA_EGLFS_LAYER_INDEX to override the layer to be
used. Enable qt.qpa.eglfs.kms to get logs about the available layers.

Change-Id: I762783f960739e32966c8cde17d8f55fbe40091f
Done-with: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-10-14 11:39:18 +00:00
Laszlo Agocs
bc6d32686c QOpenGLWidget: Fix grabbing multisample framebuffers
Task-number: QTBUG-48450
Change-Id: I0a680e0d682c7c08c3aea40d922bbf2ad66c1de0
Reviewed-by: Joni Poikelin <joni.poikelin@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-10-14 11:39:01 +00:00
Laszlo Agocs
e82e075e51 QOpenGLWidget: Do not recurse when calling grabFramebuffer() from paintGL()
Task-number: QTBUG-48450
Change-Id: I14b1ff40727f705d8b89371b4d3bb5d6adc139fe
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-10-14 11:38:56 +00:00
Liang Qi
e7ab9a1fb9 Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-10-14 11:38:53 +00:00
Laszlo Agocs
6046458dee eglfs: Handle custom platform window implementations better
Backends may want to subclass QEglFSWindow and reimplement resetSurface()
and similar. Make it possible to do this by moving window creation to
the device integration interface, similarly to screens.

In addition to customizing the windows, some backends may want to disable
the dependency on surfaceless contexts when using offscreen windows
(i.e. pbuffer surfaces). Make this possible too.

Change-Id: Ic5a426e07f821c7a800217b8799f91770ba6a6d8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-10-14 11:38:42 +00:00
Alexander Volkov
e824abd987 configure: Remove unused options -xvideo and -xinerama
-xvideo was not used even by Qt 4 for a long time.
-xinerama was used by the xlib plugin which was dropped
by e6a7a6a381.

Change-Id: Iea97f643570d98f84ad1ce6f16e911dc92d617b0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-10-14 09:30:21 +00:00
Friedemann Kleint
f0a559f1c8 Tests: Use QCOMPARE() with QLatin1String() for QString values.
Prefer QCOMPARE over QVERIFY for equality and use QLatin1String().

Change-Id: If226a0fc7b25be3e6774c7e36ca1e6f99234e5dd
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-10-14 08:32:42 +00:00
Morten Johan Sørvig
b63c3d4d9a Make the CoreFoundation event dispatcher depend on QtCore only
In anticipation of moving it to QtCore.

The call to QWindowSystemInterface::sendWindowSystemEvents() has been
moved to QIOSEventDispatcher by making processPostedEvents() virtual.

Change-Id: I9e03be4153a9f5f34e9a0ac942cdff572a44c318
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-10-13 22:57:12 +00:00
Liang Qi
b7ac036b72 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	src/network/socket/qabstractsocket.cpp
	src/plugins/platforms/winrt/qwinrtscreen.cpp
	src/sql/drivers/mysql/qsql_mysql.cpp

Change-Id: Ifb73623d09f53340ee5e10283f1f86b580998902
2015-10-13 23:03:51 +02:00
Friedemann Kleint
a2a00eb044 Tests: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I1a026c320079ee5ca6f70be835d5a541deee2dd1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-13 18:14:27 +00:00
Marc Mutz
967e4f258c QLinkedList/QSet: add {const_,}reverse_iterator, {c,}r{begin,end}()
Now all Qt sequential containers consistently provide reverse iterators.

The associative ones, by way of not returning std::pair from op*, can't
just use std::reverse_iterator. They would miss .key() and .value() methods.
So that has to wait for 5.7.

The reverse versions of the new key_iterators can also just use
std::reverse_iterator, but I'm afraid that after bikeshedding over
keyRBegin() vs. rKeyBegin() vs. reverseKeyBegin() vs. rkbegin()
vs. krbegin() (<-- of course, what else?), it would anyway be too
late for 5.6, so defer, too.

[ChangeLog][QtCore][QLinkedList/QSet] Added rbegin(), crbegin(), rend(), crend(),
and reverse_iterator and const_reverse_iterator typedefs.

Task-number: QTBUG-25919
Change-Id: I58316fffade469e9a42c61d7aa1455ae3443fd94
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-13 18:07:20 +00:00
Ulf Hermann
0df5d07929 Don't let closed http sockets pass as valid connections
A QAbstractSocket can be close()'d at any time, independently of its
current connection state. being closed means that we cannot use it to
read or write data, but internally it might still have some data to
send or receive, for example to an http server. We can even get a
connected() signal after close()'ing the socket.

We need to catch this condition and mark any pending data not yet
written to the socket for resending.

Task-number: QTBUG-48326
Change-Id: I6f61c35f2c567f2a138f8cfe9ade7fd1ec039be6
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-13 16:40:56 +00:00
Friedemann Kleint
9b6cd2764a Testlib: Output function / total time along with crash dump.
Previously, only QXmlTestLogger had timers to take elapsed times
and log them. Move those into class QTestLog for access by
the loggers and output the times in the crash dump to make it
easier to spot hangs/recursion crashes.

Produces:

QFATAL : foo() Received signal 11
         Function time: 22ms Total time: 23ms

A crash occurred in ...
Function time: 24ms Total time: 26ms

Task-number: QTBUG-47370
Change-Id: Ia530a63104087daffc9a15f68c15d93378b9407e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-10-13 16:38:43 +00:00
Friedemann Kleint
bba86a01c9 Libraries: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I8e198774c2247c1cc1d852a41b59b301199b7878
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-10-13 16:37:37 +00:00
Friedemann Kleint
f9bf737d74 Examples/Doc snippets: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I79fa5018f05735201ae35ee94ba0d356fcad1056
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-10-13 16:37:07 +00:00
Topi Reinio
dab4877a0a qdoc: Improve formatting of function signatures
This is a continuation of the work started in commit
694d300355.

Attach reference ('&') and pointer ('*') qualifiers to the
parameter name, as per Qt coding style.

Previously, function signatures were documented like this:

    QString & QString::append(const QString & str)

After this change, they will appear like this:

    QString &QString::append(const QString &str)

Change-Id: Ie103fc2929635bc32145e50469c600f9f378f97c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-10-13 11:55:54 +00:00
Topi Reinio
ee634611d4 qdoc: Insert targets for function and enum nodes read from the index
QDoc wrote \target and \keyword information into the index file
properly, but did not read them back in.

This was because the code for handling enum and function elements
read their own child elements (without handling targets), and
marked the remaining children to be skipped.

This commit fixes the issue by refactoring the code for inserting
targets into a new function and calling it from relevant places.

Change-Id: I85d7b26ce54620daec35b19e447d1a065515b863
Task-number: QTBUG-48687
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-10-13 11:55:46 +00:00
Friedemann Kleint
798128856c qdoc: Fix single-character string literals.
Use character literals where applicable.

Change-Id: I7011ae6ee55107b4788cc434e0dc3618c4213799
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-10-13 11:11:50 +00:00
Maurice Kalinowski
72d0c62d14 WinRT: Fix native MessageBox not closing
The message box buttons need to be added inside the XAML thread.
Otherwise QWinRTMessageDialogHelper::onCompleted will not be triggered.

To successfully emit the clicked signal across different threads do not
exit the eventloop.

Change-Id: Ie884bdfe0dc64132559755083dae50c2aa43d80b
Task-number: QTBUG-48209
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-10-13 11:07:48 +00:00
Yoann Lopes
a7297ed85b Fix gstreamer configuration test.
Don't use gst_is_initialized(). It was added in 0.10.31, but we don't
actually require that version.

Change-Id: If5d662e18511cf636861bf93eeccc1f5b69e26f1
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-10-13 08:59:04 +00:00
Liang Qi
07800a9727 Merge "Merge remote-tracking branch 'origin/5.5.1' into 5.5" into refs/staging/5.5 2015-10-13 11:14:37 +00:00
Liang Qi
57fead6100 Merge remote-tracking branch 'origin/5.5.1' into 5.5
Change-Id: I2942591e1c1ca86ce0f6476e0a5c3033cdf861ee
2015-10-13 10:09:20 +02:00
Jani Vähäkangas
e86f889de7 Autotests: Blacklist parts of tst_qopenglwidget
Removed the insignificant flag so the rest of the test becomes enforcing.
This test seems to fail only on win32-msvc2010_developer-build_angle_Windows_7

Task-number: QTBUG-31611
Change-Id: Ic4818e50305e1e15eb67b505205436d3fec0ccfb
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@theqtcompany.com>
2015-10-13 06:52:25 +00:00
Alex Trotsenko
0872156559 QAbstractSocket: fix writing to socket in HostLookup state
After calling connectToHost(), the socket enters HostLookup state. At this
stage, the socket engine was not created yet, and writing to the socket
should result in either data buffering or an error. So, add a check for
d->socketEngine to prevent a crash on unbuffered sockets.

Task-number: QTBUG-48356
Change-Id: I15ea9ce7de97ce6d7e13e358eca5350745b556bb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-10-13 05:20:08 +00:00
Tor Arne Vestbø
676edc006e OS X: Forward key events to popup window if present
On OS X we don't treat popup windows as worthy of being activated and
focus windows (key windows). Instead we keep track of the active popup
windows and forward events to them manually.

The forwarding logic is split between QPA, which handles mouse, and
QWidgetWindow and QQuickWindowPrivate, which handles key events.

This commit adds the logic for key events to QPA, which is the right
platform layer for this kind of workarounds. The widget code is left
as is for now, and the QQuickWindowPrivate code can be removed in
a follow up.

Task-number: QTBUG-39415
Change-Id: Iee411fcba9fc81ddcc3a7bc82591184675a6d7a2
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-10-12 17:14:00 +00:00
Juha Turunen
a623fe8d2a Fixed a QTimer::singleShot() crash when a functor callback is used
If QTimer::singleShot() is used with a functor callback and a context
object with different thread affinity than the caller, a crash can
occur. If the context object's thread is scheduled before
connecting to QCoreApplication::aboutToQuit(), the timer has a change
to fire and QSingleShotTimer::timerEvent() will delete the
QSingleShotTimer object making the this pointer used in the
connection invalid. This can occur relatively often if an interval
of 0 is used.

Making the moveToThread() call the last thing in the constructor
ensures that the constructor gets to run to completion before the
timer has a chance to fire.

Task-number: QTBUG-48700
Change-Id: Iab73d02933635821b8d1ca1ff3d53e92eca85834
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-12 16:45:04 +00:00
Giuseppe D'Angelo
a2f6ece27f QLockFile: fix errno handling
In case of a lock failure, we potentially pollute the errno value
before printing it. Also, switch to qt_error_string, as strerror
is not reentrant.

Change-Id: I952aac14204637155726bcefc0ed8a21d7fcd501
Reviewed-by: David Faure <david.faure@kdab.com>
2015-10-12 15:09:53 +00:00
Marc Mutz
5962c6e37e QtCore: use QStringBuilder in more places
Change-Id: I1a2016039c6cfa35505b987b6d4627bf806500ba
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-12 09:37:41 +00:00