The extra bool arguments weren't needed in the first place as they
specify the default, but were left behind when allocate parameters were
changed from bools to AllocationOptions.
Clang saves the day by pointing out the weird conversion going through
void ** (!?)
Change-Id: Ia0dafce06bf0ee62bd825a2db819c890343b6342
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
This provides the same functionality as the specialized QStringLiteral
and QByteArrayLiteral, but on top of QArrayData.
The macro has two variations, variadic and simple. The variadic version
depends on compiler support for (C99) variadic macros and enables
static initialization of arrays of any POD data. Use of this macro is
not recommended on code or applications that need to work in
configurations where variadic macros are not supported.
The simple version is more portable and is enough to support the use
cases of QStringLiteral and QByteArrayLiteral, also providing a fallback
that allocates and copies data when static initialization is not
available.
Change-Id: I7154a24dcae4bbbd7d5978653f620138467830c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is done through a (POD) wrapper around a raw QTypedArrayData
pointer. The wrapper forces conscious decisions on the use of that
pointer, while implying it is internal API.
The pointed-to header is assumed to referenced, as if already owned by
the receiving QArrayDataPointer.
This wrapper is placed in the generic qarraydata.h header as its
definition doesn't depend on QArrayDataPointer by itself.
Change-Id: I9b2b6bb7dd9ab073dc7d882ccf999b32d793ed3f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
RefCount has currently three magic values (-1 for statics, 0 for
unsharables, 1 for unshared-sharable). From the API point of view, the
individual values are not important or necessary and it's error prone
for users of the class to be fiddling with them.
Change-Id: I7037cc31d3d062abbad73d04962bc74d85ebd20f
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The previous patch missed this, which was hidden inside #ifdefs.
Change-Id: Iba1417d4191b6931afb549022768f3e3a2cf727d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
, as those are going away.
The comment in QString/QByteArray::squeeze about shared_null was updated as it
also affects other static data, such as that generated by QStringLiteral and
QByteArrayLiteral.
Change-Id: I26a757d29db62b1e3566a1f7c8d4030918ed8a89
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
QVectorData::allocate is able to handle higher alignment that
QVectorData::malloc didn't.
This was kept for BC issues in the 4.x series, we can drop it now.
Change-Id: I7782bd2910de6b9c8dee3e63e621629dc3889d33
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
The behavior of Q_CHECK_PTR is user-configurable. It may throw and
exception, output a warning or be a no-op. As such, its best used in
inline code that gets compiled into the user application.
Moving it out of the QArrayData API also enables this to be used in code
that must handle out-of-memory errors without crashing or otherwise
issuing warnings.
Putting in QArrayDataPointer gives good convenience coverage for those
who are implementing containers on top of the QArrayData stack, and
covers its use in the SimpleVector test case. It intentionally leaves
out the use of allocate to access the (hidden) shared-empties which
don't really allocate, anyway (in QArrayDataPointer::clear and
setSharable).
The autotest is not updated and will have to make do without the
Q_CHECK_PTR "protection". I think that is ok.
Change-Id: Idcad909903a9807866bf23ace89f1bf1edc53c3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This propagates changes in b08daaedd4 to
this branch.
Change-Id: I3b72f53c7b24d27075ea8593c347b504bfd8f581
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: hjk <qthjk@ovi.com>
, as those are going away.
This cleans use of those operations in the QArrayData stack.
Change-Id: I67705fe0a2f8d99ea13739b675021356a5736f83
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: hjk <qthjk@ovi.com>
This is a private function that was always* called after d->ref.deref()
returned false to free the linked list. Still, it needlessly verified
the reference count to be zero.
The check is thus replaced with a Q_ASSERT to check the invariant on
debug builds.
*This commit also fixes an issue where free would be called on a block
that hadn't been deref'ed, thus leaking the nodes. Since this was in an
exception handling block, and happens before any code has a chance to
reference the block the explicit deref is skipped in that case.
Change-Id: Ie73c174d0a1b84f297bf5531e45f829e66a46346
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
By default, QTypedArrayData::fromRawData provides the same semantics as
already exist in QByteArray and QString (immutable, sharable data), but
more combinations are possible. In particular, immutable-unsharable
leaves the data owner in control of its lifetime by forcing deep copies.
As part of this, a new isMutable property is introduced in QArrayData.
This could be taken to be implicit in statics that are initialized with
a proper size but with alloc set to 0. QStringLiteral and QByteLiteral
already did this, forcing re-allocations on resize even before the
(static, thus shared) ref-count is considered.
The isMutable property detaches data mutability and shared status, which
are orthogonal concepts (at least in the unshared state). For the time
being, there is no API to explicitly (re)set mutability, but statics and
RawData mark data immutable.
Change-Id: I33a995a35e1c3d7a12391b1d7c36095aa28e221a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QAccessibleInterface::relationTo() already return
QAccessible::Unrelated by default. No need to duplicate that code.
Change-Id: I40e6758b946c43ca8773cdb2d28407edf99aad49
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Change-Id: I9fdeeafe08dd70c0ab9ce26a2fce3b8d803ca280
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Change-Id: Ib8725e89e40d6e12172b1da687da2e4d559444f3
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Change-Id: Id9635b6faeaf12ba2f7a0f70055b0df01cd16587
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Change-Id: I302be7dc4cd7a9c2b9e35e8142ca100d6f86da7c
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
[NSNotificationCenter addObserver]'s documentation clearly states that
removeObserver needs to be called before releasing the object being
observed. The m_contentView we create was never released either, so be
sure to release that as well.
Change-Id: Ia54eb1c5c751f4cb0edb21ad559b261cb8f24208
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
When connecting to an X11 server, the server tells the client what its
maximum allowed request size is. Larger requests are not permitted.
Thus, libxcb verifies that all requests which are sent are smaller than
this size limit and possibly kills the connection (without any good
error message).
Thus, when uploading an image, we could be trying to send more pixel
data than fit into a single request. If this would be the case, the
code will now use multiple requests where each request only sends a
part of the allowed rows.
In case all the data fits into a single request, this commit shouldn't
change any behavior.
Change-Id: I84a4ebfcdb6de7e206015c37e3e33cba3bd309b1
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
The state should contain useful and clear information.
Some of the old enum/bitfield members were not really clear.
Make them follow Qt terminology and shift the burden of interpreting
them to the bridge.
Apart from the previous commit changing from enum to bitfield, these
flags have changed names:
unavailable -> disabled
mixed -> checkStateMixed
protected -> passwordEdit (in the last commit)
floating is completely removed, even MSAA documentation states it is unsupported.
Some new states have been added.
Documentation added.
Change-Id: I152256e77a061f28ee5780f527524c80a2c7e333
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Be more user-friendly (e.g. when logging into a machine by ssh and
forgetting to export DISPLAY).
Change-Id: I9d07b0af9c5b4841827826053bb27b507801ae61
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Modified exceptions as most tests are now passing correctly. Three exceptions
still remain, two serverSideMode tests (ssl3-any, tls1.0-any) and a
verifyMode test.
Task-number: QTBUG-23575
Change-Id: I847e8c2e3484050b8d07ede9aec955c30f7ef5a1
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The removed function was private API and was not used anywhere in Qt.
Change-Id: Ia262d119ebba30f6968cb7145043475bf88ffa39
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
- Moved largefile from out of qfile unittest directory to be on
same level as qfile.
Change-Id: I479b0b33594812759f8a6a7be61f8340f64234e9
Reviewed-by: Kurt Korbatits <kurt.korbatits@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
- uses QFINDTESTDATA instead of SRCDIR
- Added check to test if fonts are present and generate one skip instead
of 1200+ on platforms were no fonts are available for testing.
- fail if unittest fonts not found.
Change-Id: I9c051cf8cef6cd355f16647c614c86771dcf6150
Reviewed-by: Kurt Korbatits <kurt.korbatits@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Modified unittests to use specific class headers instead of
using super-headers like QtCore that pull in all the headers for
the module.
- Decreasing build time.
Change-Id: I9c3fd0767be15205893bb406f609c8283a2a3a5a
Reviewed-by: Kurt Korbatits <kurt.korbatits@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
- All subprograms installed as part of test instead of separate installs
using installTestHelperApp() from testcase.prf
- Removed use of app_bundle for subprograms
Change-Id: I0a3de021800d36bd48479f63588b09fc7e60f32f
Reviewed-by: Kurt Korbatits <kurt.korbatits@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
This test hardcodes IP address / hostname pairs to be used for forward
and reverse lookups.
The reverse DNS entry for 62.70.27.69 has recently disappeared. Replace
it with an IP / name pair which is (hopefully) much less likely to
disappear.
Change-Id: I03f589e1c0f4bde0b1a14e94b3c1047eeb81246e
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
When installing extra binaries the paths where not being escaped,
causing stripping and deleting to fail when dealing with filenames
that contained one or more spaces.
Change-Id: Iba4517b1110f6af30f7e2662cb86024a8b7b81f7
Reviewed-by: Kurt Korbatits <kurt.korbatits@nokia.com>
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>