It's not necessary to check at every point if we know the minimum file
size: it must contain at least the header, one segment (__TEXT) and one
section (qtmetadata). Most files have more than one segment and more
than one loader command, so this check does not mean we can eliminate
the checks further down.
Also be more resilient against corruptions in the header data: check not
only the additions, but the values themselves. For example, an offset +
size addition could be smaller than the file size when the addition
overflows in 32-bit. Another thing is that the cmdsize fields could be
corrupt too.
Change-Id: I7968a769c1cbe9150270c91823cafc4f8f833876
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
We already had an ELF decoder, which helped us greatly to find the
metadata and that catches most Unix systems (Solaris, QNX, HP-UXi, and
all of the free Unixes). On other Unix systems, aside from Mac OS X,
we simply scanned the entire file for the signature. On Windows, even
without a COFF-PE decoder, we use a LoadLibrary trick to load the
plugin without loading the dependent libraries. In most cases, that
works.
Unfortunately, on Mac OS X we didn't have a decoder and nor could we
do the file scan: because Mac OS X binaries could be fat binaries, we
wouldn't know which architecture's signature we had found.
No more. This adds a full Mach-O decoder to QtCore. It is also capable
of finding the boundaries of the architecture's binary, but that
functionality is disabled since all Qt 5 plugins have plugin metadata
sections.
Change-Id: I2d5c04c5ecf024864b8a43f31ab6b7e6c5eae9ce
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Unexport free function qt_registerAliasToFontFamily() and
Make it a static member of QPlatformFontDatabase instead.
Change-Id: I1df49a8e37a24b3961f92288d67b6f1108a7d520
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This is a bit like QDir::cleanPath(), but for URL paths.
The code is shared with QDir::cleanPath(), by extracting the common parts
it into a helper, qt_normalizePathSegments().
Change-Id: I7133c5e4aa2bf17fba98af13eb5371afba64197a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This add checks on iterators on insert and erase.
Change-Id: I41d96e038d74668cc1df10b6d42cde4b82f8a696
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check on erase that the iterator is from the set.
Change-Id: I9f4e127d53a5b1f5f8c70652604f1f5574c73688
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This checks if the iterator argument in erase is valid in debug mode.
Change-Id: I8768f4263d1464ff78986a1a30702e210e561dc1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check of the iterator values in erase and insert.
Change-Id: I78403dcbd24fd7c6beb86d3c827a8e233963e770
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This adds a check of the iterator values in erase and insert.
Change-Id: I28e660153dbfc5f0054a5b25cba2c5725c678a81
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This patch adds a debug-tests in erase, insert (with hint)
and insertMulti (with hint) that ensures the iterator-argument
is valid (and e.g not from another map)
Change-Id: I7920131bc9712543183cabf13c7603bd0e12880d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Introduce QScopedPointer for windows or instantiate them on the
stack to prevent leaks. Tile all windows within virtual
screen to ensure they don't influence each other and are not
in the taskbar area.
Move cursor away from windows in modalWindow-test.
Change-Id: I40343e9f72263e22bdf2560448d7efcc915d17cb
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
It was doing tricks with URLs that it shouldn't be doing... including
running QDir::toNativeSeparators on a URL.
Task-number: QTBUG-32311
Change-Id: I5b6f640919956998c00dcf507f931045f21a9e53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
It seems like the left-side menu bar on Ubuntu 12.04 causes some
problems when it is not automatically hidden, which is the case
in the CI machines.
Task-number: QTBUG-31995
Change-Id: I01ff3fe4c09d720b2dd53037c42e59679d8570dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The deadlock is caused because the QEvent is destroyed while holding the
event list mutex. And the QEvent may have a custom destructor that will
re-enter the event handlng code.
The QScopedPointer that should destroy the event must be created after
the MutexUnlocker.
Regression introduced by commit f9035587b9
Task-number: QTBUG-31606
Change-Id: I6b2cbc2656eacdec61b641886953f00bf5b3ff36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It is better to mark a test as XFAIL so we get an error whenever
it gets fixed.
Task-number: QTBUG-23059
Change-Id: I0f2f491645c261bf0e735dde6a16d8e90e0b17a0
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Sometimes it is nice that hiding a widget does not affect the
layout. This patch makes that possible by allowing hidden
widgets to take up space.
Change-Id: Ifbc1cdee0e112950acc025919b98199ea9558db7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Makes for more informative debug output when the tests fail.
Change-Id: Ib07dd79452a56413c711394dd72aa37dbb4a70d7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
This allows to find the parent directory url using
url.adjusted(QUrl::RemoveFilename).
Change-Id: I1ca433ac67e4f93080de54a9b7ab2e538509ed04
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Otherwise the output is too intertwined.
Change-Id: I6729727b3afcdcbec58e3fa560587dd1fa08f38e
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
qt_ACE_do(".co.uk") was returning an empty string because of the
leading dot. Allow leading dots from topLevelDomain, but not from
other calls.
Change-Id: I757d9960708e205d30554cd2bbcf618c8624792b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This patch does 2 things mainly:
- Adds a QPlatformTheme font type for fixed fonts. It's important
because some OS provide specific monospaced fonts and we want to let
our applications to use the preferred fonts by default.
- Adds a new method and enum to QFontDatabase that expose the font
types that applications might need, so that they can make the
applications use the specific fonts that the system recommends. This
data was already available within Qt through the QPlatformTheme, but
it was not possible to use this data by Qt users. This new method
exposes such data.
Change-Id: Ic194c1e4bc07a70640672afd82ba756b87606985
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Calling waitForNotified on an uninitialized notifier will print a
warning and return false. The autotest has been adjusted.
Change-Id: I85e18d6d0a8a5462e1a5d451613add941d89b5fb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instantiate widgets on the stack to ensure they are destroyed
when the QApplication instance goes out of scope.
Introduce waitForWindowExposed() to make sure events are in sync.
Task-number: QTBUG-32125
Change-Id: Ia54e2fa9a7c2e279353c4514a6735e326edf35ae
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QFSFileEnginePrivate::canonicalized has been gone for a very, very long time now
(since d3b152ba1e3cd38dd675c801474105d518bacb44 in Qt 4).
This also fixes a build failure in the code on Windows.
Change-Id: I81f5e0c1d644b1b4d75644626eb394a663535387
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Need to store 17 decimal digits for binary64, IEEE 754 double formats.
Autotest is included. Test cases from TC39 test suite for ECMAScript.
Task-number: QTBUG-31926
Change-Id: I546398f21ea7ff5e40e89fc9de8703f628f55df9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Do not lower case file names to generate hash keys since
QString::toLower() converts some characters with context
which the Windows file system will not.
Task-number: QTBUG-31341
Change-Id: I285bfedef3c1ca9d59083229e61974dd378c72ae
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Since configure no longer puts this in $QTDIR/lib, we need to
copy it from the NDK and into the device ourselves.
Task-number: QTBUG-32079
Change-Id: I75ee5f8a00de9a1ba536bcfd857e6b2e7a0e1f6e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
If we don't call finish() before crashing the activity, then
the Activity Manager will just restart it.
Task-number: QTBUG-32079
Change-Id: I09623afe545c3f4e8b9be801ccfbe244059b270e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
We need to also load the binary for the application itself.
Task-number: QTBUG-32079
Change-Id: Ic26d5e6d950d6d18aaa54392c3c84b6deaa56c75
Reviewed-by: BogDan Vatra <bogdan@kde.org>
We just pass 1.0 as the scaled density for now, since it shouldn't
make much different to the code being tested.
Task-number: QTBUG-32079
Change-Id: I888c4640e4627f47a2c128d2ce2a41adf4ca3132
Reviewed-by: BogDan Vatra <bogdan@kde.org>
contrary to what one may expect, it's actually *not* supposed to remove
the meta-characters it interprets.
luckily, this function is not used much any more ...
Task-number: QTBUG-31877
Change-Id: I2b60f9b173140da78db2b07b596cc2e5f6e6d555
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
In earlier patches we allowed the user to control the
tooltip duration. However the user still couldn't control
the wake delay and sleep delay.
This patch changes that and is the final patch in solving:
Task-number: QTBUG-1016
Change-Id: I5e2c719737634ad7f371ad03691744612472ae70
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
The Qt CI system runs the unit tests after installation, but
with the qmake in the build directory. This means that the
installed content is not unit tested. Add an additional cmake
unit test to test the files in the install location.
The new test is marked insignificant for now until the true
effect on the CI system is known.
Task-number: QTBUG-27315
Change-Id: If9f12e88cfc741946cfabc25dbf789a11a2af4b8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Instead of calling different wait functions on different platforms,
we use QTRY_COMPARE to check the process state.
Change-Id: I6489cabce9e63f9c8b1036f3cccbf35b52df72e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
This reverts commit e3fa266623b08e837cb4ccc7fe59da243d03dd27
That commit applied a change at the wrong place in the code.
Change-Id: I21e3045a3af14ad2f90c5fe338815c35a2d27ae6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Leading and double dots are bad, but trailing dots are fine. The ASCII
part of a hostname is supposed to be LDH (letters, digits, hyphen) only,
but we accept '_' (underscore) as an exception too.
Change-Id: I79957ddec4da78a0e2357fe50c8687db03e1c99e
Reviewed-by: David Faure (KDE) <faure@kde.org>