QRingBuffer: cache the last released block

A typical ring buffer usage is a sequence of reserve()->chop()->read()
cycles. Usually, between these cycles, the buffer doesn't contain data and
all blocks are released. To reduce reallocations, keep the most recently
used block while the buffer is empty.

Change-Id: I8128f1f04649ae005fd0a480f17f95de01a9a135
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
QSslEllipticCurve: remove a copy when setting the curves

The only reason for copying QSslEllipticCurves into a temporary array
would be to be extra-pedantic about type safety, but in the end,
we can simply force a cast and remove the copy.

Change-Id: Ice8a036fe4b79ba438ce83b5eacf6158eb3f0ce7
Reviewed-by: Richard J. Moore <rich@kde.org>
Add Q_DECL_OVERRIDE in the src subdirectory

Done automatically with clang-modernize on linux

(But does not add Q_DECL_OVERRIDE to the function that are marked
 as inline because it a compilation error with MSVC2010)

Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QAbstractScrollArea: add a getter for the margins

Strange API asymmetry that needed to be fixed.

Task-number: QTBUG-8315

[ChangeLog][QtWidgets][QAbstractScrollArea] A getter for the viewport
margins has been added.

Change-Id: Ie1460b572206922031fc4effc2aa8261e25088b5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Implement proper C++ type numeric promotion for QVariant comparisons

Previously, QVariant would try to convert one operand to the other's
type, which would produce unexpected results: the results would depend
in the order of the operands and whether there was data loss in the
conversion. In addition, ordering comparisons were only done with signed
values, yielding other unexpected results, like
   QVariant(LLONG_MAX / 2) < QVariant(Q_UINT64_C(0)).

Instead, try to obey the C++ standard rules for type promotion in
expressions. Our code is a little simpler than the standard would seem
to require since we know some more details from the ABI.

[ChangeLog][Important Behavior Changes][QVariant] QVariant now obeys the
C++ type promotion rules when comparing numeric types (integrals, float
and double), including the fact that unsigned comparisons are preferred
for types of the same rank (that is, now QVariant(-1) > QVariant(0U)).

Task-number: QTBUG-42722
Change-Id: Ie7b19073dcb45485354710975e561bcdb1a753f1
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Hoist the numeric comparisons in QVariant::{cmp,compare} further

I had already hoisted them a little in the previous commit, so that the
comparisons run without conversion. This now moves the numeric compare()
before the cmp() equality check, so it saves us a few more cycles.

Another benefit is reduced code duplication.

Change-Id: Ia96da94e169fe0b8d4e761177fc2b74e47d4daff
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
QVariant: simple improvement to numeric type checking

Results in faster code.

Change-Id: Ibeeac8c0f9d8a525fa233e00301338d3170ee413
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Add macros for enabling/disabling warnings

This allows us to avoid the ugly #if for compiler versions. We might
still need for when a warning only occurs in one compiler version, but
otherwise the code will be much cleaner.

Change-Id: Ibc941d898b3dad2e3d87c11378f29139c31f0fff
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Use the new warning enabling/disabling macros in qtbase

Change-Id: I91ff06644e8047c2ca483f9768b46c1372eb6171
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Hide the output of make in qmake's dir inside configure

Unless the -v option is passed

Change-Id: I16b2e6a42ccfc8d913517621f8f2e3bbcf9c4635
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>