Merge remote-tracking branch 'origin/5.4' into 5.5

Conflicts:
	tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro
	tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro

Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
This commit is contained in:
Liang Qi 2015-04-16 12:29:42 +02:00
commit 9c8edb91f2
19 changed files with 52 additions and 55 deletions

View File

@ -395,8 +395,10 @@ public:
void or32(TrustedImm32 imm, RegisterID src, RegisterID dest)
{
if (!imm.m_value && !m_fixedWidth)
if (!imm.m_value && !m_fixedWidth) {
move(src, dest);
return;
}
if (imm.m_value > 0 && imm.m_value < 65535 && !m_fixedWidth) {
m_assembler.ori(dest, src, imm.m_value);
@ -2647,7 +2649,7 @@ public:
{
m_assembler.truncwd(fpTempRegister, src);
m_assembler.mfc1(dest, fpTempRegister);
return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0));
return branch32(branchType == BranchIfTruncateFailed ? Equal : NotEqual, dest, TrustedImm32(0x7fffffff));
}
// Result is undefined if the value is outside of the integer range.

View File

@ -63,7 +63,20 @@ HEADERS += $$PWD/disassembler/ARMv7/ARMv7DOpcode.h
SOURCES += $$PWD/yarr/*.cpp
HEADERS += $$PWD/yarr/*.h
retgen.output = RegExpJitTables.h
#
# Generate RegExpJitTables.h
#
GENERATEDDIR = .generated
debug_and_release {
CONFIG(debug, debug|release) {
GENERATEDDIR = $$GENERATEDDIR/debug
} else {
GENERATEDDIR = $$GENERATEDDIR/release
}
}
INCLUDEPATH += $$GENERATEDDIR
retgen.output = $$GENERATEDDIR/RegExpJitTables.h
retgen.script = $$PWD/create_regex_tables
retgen.input = retgen.script
retgen.CONFIG += no_link

View File

@ -1,5 +1,5 @@
TARGET = qmldbg_tcp
QT = qml-private
QT = qml-private core-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QTcpServerConnection

View File

@ -35,6 +35,7 @@
#include <QtCore/QBuffer>
#include <QtCore/QElapsedTimer>
#include <private/qiodevice_p.h>
QT_BEGIN_NAMESPACE
@ -318,19 +319,6 @@ QPacket QPacketProtocol::read()
return rv;
}
/*
Returns the difference between msecs and elapsed. If msecs is -1,
however, -1 is returned.
*/
static int qt_timeout_value(int msecs, int elapsed)
{
if (msecs == -1)
return -1;
int timeout = msecs - elapsed;
return timeout < 0 ? 0 : timeout;
}
/*!
This function locks until a new packet is available for reading and the
\l{QIODevice::}{readyRead()} signal has been emitted. The function
@ -356,7 +344,7 @@ bool QPacketProtocol::waitForReadyRead(int msecs)
return false;
if (!d->waitingForPacket)
return true;
msecs = qt_timeout_value(msecs, stopWatch.elapsed());
msecs = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
} while (true);
}

View File

@ -430,13 +430,13 @@ bool Binop::int32Binop(IR::Expr *leftSource, IR::Expr *rightSource, IR::Expr *ta
as->lshift32(l, Assembler::ScratchRegister, targetReg);
break;
case IR::OpLShift:
case IR::OpRShift:
as->move(r, Assembler::ScratchRegister);
as->and32(Assembler::TrustedImm32(0x1f), Assembler::ScratchRegister);
as->rshift32(l, Assembler::ScratchRegister, targetReg);
break;
case IR::OpLShift:
case IR::OpURShift:
as->move(r, Assembler::ScratchRegister);
as->and32(Assembler::TrustedImm32(0x1f), Assembler::ScratchRegister);
as->storeUInt32(targetReg, target); // IMPORTANT: do NOT do a break here! The stored type of an urshift is different from the other binary operations!

View File

@ -814,8 +814,15 @@ ReturnedValue QtObject::method_formatDateTime(QV4::CallContext *ctx)
}
/*!
\qmlmethod bool Qt::openUrlExternally(url target)
Attempts to open the specified \c target url in an external application, based on the user's desktop preferences. Returns true if it succeeds, and false otherwise.
\qmlmethod bool Qt::openUrlExternally(url target)
Attempts to open the specified \c target url in an external application, based on the user's
desktop preferences. Returns true if it succeeds, and false otherwise.
\warning A return value of \c true indicates that the application has successfully requested
the operating system to open the URL in an external application. The external application may
still fail to launch or fail to open the requested URL. This result will not be reported back
to the application.
*/
ReturnedValue QtObject::method_openUrlExternally(QV4::CallContext *ctx)
{

View File

@ -82,7 +82,7 @@ public:
void destroyContext();
void handleContextCreationFailure(const QSurfaceFormat &format, bool isEs);
QObject *focusObject() Q_DECL_OVERRIDE;
QObject *focusObject();
GLuint textureId() const Q_DECL_OVERRIDE;
QImage grabFramebuffer() Q_DECL_OVERRIDE;

View File

@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qdebugmessageservice
QT += qml network testlib gui-private
QT += qml network testlib gui-private core-private
macx:CONFIG -= app_bundle
SOURCES += tst_qdebugmessageservice.cpp

View File

@ -8,5 +8,5 @@ INCLUDEPATH += ../shared
include(../shared/debugutil.pri)
CONFIG += parallel_test
QT += qml network testlib gui-private
QT += qml network testlib gui-private core-private
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0

View File

@ -14,5 +14,5 @@ DEFINES += QT_QML_DEBUG_NO_WARNING
CONFIG += qml_debug
QT += qml-private testlib gui-private
QT += qml-private testlib gui-private core-private
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0

View File

@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qqmldebuggingenabler
QT += qml testlib gui-private
QT += qml testlib gui-private core-private
osx:CONFIG -= app_bundle
SOURCES += tst_qqmldebuggingenabler.cpp

View File

@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qqmldebugjs
QT += qml testlib gui-private
QT += qml testlib gui-private core-private
macx:CONFIG -= app_bundle
SOURCES += tst_qqmldebugjs.cpp

View File

@ -18,5 +18,5 @@ OTHER_FILES += \
DEFINES += QT_QML_DEBUG_NO_WARNING
QT += qml-private testlib gui-private
QT += qml-private testlib gui-private core-private
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0

View File

@ -10,7 +10,7 @@ include(../shared/debugutil.pri)
TESTDATA = data/*
QT += core qml testlib gui-private
QT += core qml testlib gui-private core-private
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
OTHER_FILES += \

View File

@ -1,7 +1,7 @@
CONFIG += testcase
TARGET = tst_qqmlenginedebuginspectorintegration
QT += qml testlib gui-private
QT += qml testlib gui-private core-private
macx:CONFIG -= app_bundle
SOURCES += tst_qqmlenginedebuginspectorintegration.cpp

View File

@ -1,7 +1,7 @@
CONFIG += testcase
TARGET = tst_qqmlinspector
QT += qml testlib gui-private
QT += qml testlib gui-private core-private
macx:CONFIG -= app_bundle
SOURCES += tst_qqmlinspector.cpp

View File

@ -10,7 +10,7 @@ include(../shared/debugutil.pri)
TESTDATA = data/*
QT += core qml testlib gui-private
QT += core qml testlib gui-private core-private
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
OTHER_FILES += \

View File

@ -134,31 +134,30 @@ void tst_qquickapplication::state()
QQuickWindow window;
item->setParentItem(window.contentItem());
// initial state should be ApplicationInactive
QCOMPARE(Qt::ApplicationState(item->property("state").toInt()), Qt::ApplicationInactive);
QCOMPARE(Qt::ApplicationState(item->property("state2").toInt()), Qt::ApplicationInactive);
// If the platform plugin has the ApplicationState capability, state changes originate from it
// as a result of a system event. We therefore have to simulate these events here.
if (QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ApplicationState)) {
// Flush pending events, in case the platform have already queued real application state events
QWindowSystemInterface::flushWindowSystemEvents();
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive);
QTest::waitForEvents();
QWindowSystemInterface::flushWindowSystemEvents();
QCOMPARE(Qt::ApplicationState(item->property("state").toInt()), Qt::ApplicationActive);
QCOMPARE(Qt::ApplicationState(item->property("state2").toInt()), Qt::ApplicationActive);
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationInactive);
QTest::waitForEvents();
QWindowSystemInterface::flushWindowSystemEvents();
QCOMPARE(Qt::ApplicationState(item->property("state").toInt()), Qt::ApplicationInactive);
QCOMPARE(Qt::ApplicationState(item->property("state2").toInt()), Qt::ApplicationInactive);
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationSuspended);
QTest::waitForEvents();
QWindowSystemInterface::flushWindowSystemEvents();
QCOMPARE(Qt::ApplicationState(item->property("state").toInt()), Qt::ApplicationSuspended);
QCOMPARE(Qt::ApplicationState(item->property("state2").toInt()), Qt::ApplicationSuspended);
QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationHidden);
QTest::waitForEvents();
QWindowSystemInterface::flushWindowSystemEvents();
QCOMPARE(Qt::ApplicationState(item->property("state").toInt()), Qt::ApplicationHidden);
QCOMPARE(Qt::ApplicationState(item->property("state2").toInt()), Qt::ApplicationHidden);

View File

@ -35,6 +35,7 @@
#include <QtCore/QBuffer>
#include <QtCore/QElapsedTimer>
#include <private/qiodevice_p.h> // for qt_subtract_from_timeout
static const unsigned int MAX_PACKET_SIZE = 0x7FFFFFFF;
@ -316,19 +317,6 @@ QPacket QPacketProtocol::read()
return rv;
}
/*
Returns the difference between msecs and elapsed. If msecs is -1,
however, -1 is returned.
*/
static int qt_timeout_value(int msecs, int elapsed)
{
if (msecs == -1)
return -1;
int timeout = msecs - elapsed;
return timeout < 0 ? 0 : timeout;
}
/*!
This function locks until a new packet is available for reading and the
\l{QIODevice::}{readyRead()} signal has been emitted. The function
@ -354,7 +342,7 @@ bool QPacketProtocol::waitForReadyRead(int msecs)
return false;
if (!d->waitingForPacket)
return true;
msecs = qt_timeout_value(msecs, stopWatch.elapsed());
msecs = qt_subtract_from_timeout(msecs, stopWatch.elapsed());
} while (true);
}