From 0f49728c329a4bbf575a36b0b18e169dc4c82ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4=C3=A4tt=C3=A4?= Date: Mon, 19 Sep 2022 15:34:52 +0300 Subject: [PATCH] Fix backward compatibility issue with QmlProfiler Previous implementation uses MaxMessage and MaxRangeType constants to specify events with undefined message or range type. This causes backwards compatibility issue if new message or range types are added, because those constants are also written to files when saving profiler traces. Add UndefinedMessage and UndefinedRangeType constants and use those instead of the MaxMessage and MaxRangeType constants. This doesn't fix opening old traces, but the same problem won't happend again with new traces. Also update profiler autotests with fixed data. Task-number: QTCREATORBUG-28146 Change-Id: Ief003d39f871dd1ff2cc908e6a4d4b4678fd0868 Reviewed-by: Ulf Hermann Reviewed-by: --- .../qmlprofiler/debugmessagesmodel.cpp | 2 +- src/plugins/qmlprofiler/inputeventsmodel.cpp | 2 +- src/plugins/qmlprofiler/memoryusagemodel.cpp | 4 +-- src/plugins/qmlprofiler/pixmapcachemodel.cpp | 2 +- src/plugins/qmlprofiler/qmleventtype.h | 2 +- .../qmlprofileranimationsmodel.cpp | 2 +- .../qmlprofiler/qmlprofilereventtypes.h | 6 ++-- .../qmlprofiler/qmlprofilermodelmanager.cpp | 4 +-- .../qmlprofiler/qmlprofilerrangemodel.cpp | 2 +- .../qmlprofiler/qmlprofilertraceclient.cpp | 4 +-- .../qmlprofiler/qmlprofilertracefile.cpp | 14 ++++----- src/plugins/qmlprofiler/qmltypedevent.cpp | 28 +++++++++--------- src/plugins/qmlprofiler/quick3dmodel.cpp | 2 +- .../qmlprofiler/scenegraphtimelinemodel.cpp | 2 +- src/plugins/qmlprofiler/tests/check.dat | Bin 56639 -> 36752 bytes .../tests/debugmessagesmodel_test.cpp | 2 +- .../tests/flamegraphmodel_test.cpp | 2 +- .../tests/inputeventsmodel_test.cpp | 4 +-- .../tests/memoryusagemodel_test.cpp | 8 ++--- .../tests/pixmapcachemodel_test.cpp | 4 +-- .../qmlprofiler/tests/qmleventtype_test.cpp | 14 ++++----- .../tests/qmlprofileranimationsmodel_test.cpp | 2 +- ...qmlprofilerbindingloopsrenderpass_test.cpp | 2 +- .../tests/qmlprofilertraceclient_test.cpp | 4 +-- 24 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/plugins/qmlprofiler/debugmessagesmodel.cpp b/src/plugins/qmlprofiler/debugmessagesmodel.cpp index 1509c95c9d0..751a52e0115 100644 --- a/src/plugins/qmlprofiler/debugmessagesmodel.cpp +++ b/src/plugins/qmlprofiler/debugmessagesmodel.cpp @@ -32,7 +32,7 @@ namespace Internal { DebugMessagesModel::DebugMessagesModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, DebugMessage, MaximumRangeType, ProfileDebugMessages, parent), + QmlProfilerTimelineModel(manager, DebugMessage, UndefinedRangeType, ProfileDebugMessages, parent), m_maximumMsgType(-1) { } diff --git a/src/plugins/qmlprofiler/inputeventsmodel.cpp b/src/plugins/qmlprofiler/inputeventsmodel.cpp index 5e2b7cb7652..088a9acdcb4 100644 --- a/src/plugins/qmlprofiler/inputeventsmodel.cpp +++ b/src/plugins/qmlprofiler/inputeventsmodel.cpp @@ -38,7 +38,7 @@ namespace Internal { InputEventsModel::InputEventsModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, Event, MaximumRangeType, ProfileInputEvents, parent), + QmlProfilerTimelineModel(manager, Event, UndefinedRangeType, ProfileInputEvents, parent), m_keyTypeId(-1), m_mouseTypeId(-1) { } diff --git a/src/plugins/qmlprofiler/memoryusagemodel.cpp b/src/plugins/qmlprofiler/memoryusagemodel.cpp index 86620ed6d0d..dc239951dd8 100644 --- a/src/plugins/qmlprofiler/memoryusagemodel.cpp +++ b/src/plugins/qmlprofiler/memoryusagemodel.cpp @@ -34,7 +34,7 @@ namespace Internal { MemoryUsageModel::MemoryUsageModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, MemoryAllocation, MaximumRangeType, ProfileMemory, parent) + QmlProfilerTimelineModel(manager, MemoryAllocation, UndefinedRangeType, ProfileMemory, parent) { // Register additional features. The base class already registers the main feature. // Don't register initializer, finalizer, or clearer as the base class has done so already. @@ -142,7 +142,7 @@ QVariantMap MemoryUsageModel::details(int index) const void MemoryUsageModel::loadEvent(const QmlEvent &event, const QmlEventType &type) { if (type.message() != MemoryAllocation) { - if (type.rangeType() != MaximumRangeType) { + if (type.rangeType() != UndefinedRangeType) { m_continuation = ContinueNothing; if (event.rangeStage() == RangeStart) m_rangeStack.push(RangeStackFrame(event.typeIndex(), event.timestamp())); diff --git a/src/plugins/qmlprofiler/pixmapcachemodel.cpp b/src/plugins/qmlprofiler/pixmapcachemodel.cpp index 5006ef31dfa..0bf214b9465 100644 --- a/src/plugins/qmlprofiler/pixmapcachemodel.cpp +++ b/src/plugins/qmlprofiler/pixmapcachemodel.cpp @@ -34,7 +34,7 @@ namespace Internal { PixmapCacheModel::PixmapCacheModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, PixmapCacheEvent, MaximumRangeType, ProfilePixmapCache, + QmlProfilerTimelineModel(manager, PixmapCacheEvent, UndefinedRangeType, ProfilePixmapCache, parent) { } diff --git a/src/plugins/qmlprofiler/qmleventtype.h b/src/plugins/qmlprofiler/qmleventtype.h index 9eb9954075d..49f9012c171 100644 --- a/src/plugins/qmlprofiler/qmleventtype.h +++ b/src/plugins/qmlprofiler/qmleventtype.h @@ -39,7 +39,7 @@ class QmlEventType : public Timeline::TraceEventType { public: static const qint32 staticClassId = 0x716d6c74; // 'qmlt'; - QmlEventType(Message message = MaximumMessage, RangeType rangeType = MaximumRangeType, + QmlEventType(Message message = UndefinedMessage, RangeType rangeType = UndefinedRangeType, int detailType = -1, const QmlEventLocation &location = QmlEventLocation(), const QString &data = QString(), const QString &displayName = QString()); diff --git a/src/plugins/qmlprofiler/qmlprofileranimationsmodel.cpp b/src/plugins/qmlprofiler/qmlprofileranimationsmodel.cpp index bec3496a15d..32d40e0a100 100644 --- a/src/plugins/qmlprofiler/qmlprofileranimationsmodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofileranimationsmodel.cpp @@ -42,7 +42,7 @@ namespace Internal { QmlProfilerAnimationsModel::QmlProfilerAnimationsModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, Event, MaximumRangeType, ProfileAnimations, parent) + QmlProfilerTimelineModel(manager, Event, UndefinedRangeType, ProfileAnimations, parent) { m_minNextStartTimes[0] = m_minNextStartTimes[1] = 0; } diff --git a/src/plugins/qmlprofiler/qmlprofilereventtypes.h b/src/plugins/qmlprofiler/qmlprofilereventtypes.h index 0c4d92c07ab..b8bc25e5e99 100644 --- a/src/plugins/qmlprofiler/qmlprofilereventtypes.h +++ b/src/plugins/qmlprofiler/qmlprofilereventtypes.h @@ -30,7 +30,8 @@ namespace QmlProfiler { enum Message { - Event, + UndefinedMessage = 0xff, + Event = 0, RangeStart, RangeData, RangeLocation, @@ -72,7 +73,8 @@ enum Quick3DEventType { }; enum RangeType { - Painting, // old Qt4 paint events + UndefinedRangeType = 0xff, + Painting = 0, // old Qt4 paint events Compiling, Creating, Binding, diff --git a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp index a17de09d2dc..72e207847f8 100644 --- a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp @@ -393,7 +393,7 @@ QmlProfilerModelManager::rangeFilter(qint64 rangeStart, qint64 rangeEnd) const // Double-check if rangeStart has been crossed. Some versions of Qt send dirty data. qint64 adjustedTimestamp = event.timestamp(); if (event.timestamp() < rangeStart && !crossedRangeStart) { - if (type.rangeType() != MaximumRangeType) { + if (type.rangeType() != UndefinedRangeType) { if (event.rangeStage() == RangeStart) stack.push(event); else if (event.rangeStage() == RangeEnd && !stack.isEmpty()) @@ -414,7 +414,7 @@ QmlProfilerModelManager::rangeFilter(qint64 rangeStart, qint64 rangeEnd) const crossedRangeStart = true; } if (event.timestamp() > rangeEnd) { - if (type.rangeType() != MaximumRangeType) { + if (type.rangeType() != UndefinedRangeType) { if (event.rangeStage() == RangeEnd) { if (stack.isEmpty()) { QmlEvent endEvent(event); diff --git a/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp b/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp index 50c461ef1c8..f0ac6aab92a 100644 --- a/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp @@ -44,7 +44,7 @@ namespace Internal { QmlProfilerRangeModel::QmlProfilerRangeModel(QmlProfilerModelManager *manager, RangeType range, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, MaximumMessage, range, featureFromRangeType(range), parent) + QmlProfilerTimelineModel(manager, UndefinedMessage, range, featureFromRangeType(range), parent) { m_expandedRowTypes << -1; } diff --git a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp index 8dcd41cbb4f..a7e01208c0e 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp @@ -170,7 +170,7 @@ void QmlProfilerTraceClientPrivate::processCurrentEvent() // all ranges are perfectly nested. This is why we can defer the type resolution until either // the range ends or a child range starts. With only the information in RangeStart we wouldn't // be able to uniquely identify the event type. - Message rangeStage = currentEvent.type.rangeType() == MaximumRangeType ? + Message rangeStage = currentEvent.type.rangeType() == UndefinedRangeType ? currentEvent.type.message() : currentEvent.event.rangeStage(); switch (rangeStage) { case RangeStart: @@ -333,7 +333,7 @@ void QmlProfilerTraceClient::setRequestedFeatures(quint64 features) d->currentEvent.event.setTimestamp(context.timestamp > 0 ? context.timestamp : 0); d->currentEvent.event.setTypeIndex(-1); d->currentEvent.event.setString(text); - d->currentEvent.type = QmlEventType(DebugMessage, MaximumRangeType, type, + d->currentEvent.type = QmlEventType(DebugMessage, UndefinedRangeType, type, QmlEventLocation(context.file, context.line, 1)); d->currentEvent.serverTypeId = 0; d->processCurrentEvent(); diff --git a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp index 7d5ecfaa25f..d9fe42d7ef1 100644 --- a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp @@ -80,7 +80,7 @@ Q_STATIC_ASSERT(sizeof(MESSAGE_STRINGS) == MaximumMessage * sizeof(const char *) static QPair qmlTypeAsEnum(const QString &typeString) { - QPair ret(MaximumMessage, MaximumRangeType); + QPair ret(UndefinedMessage, UndefinedRangeType); for (int i = 0; i < MaximumMessage; ++i) { if (typeString == _(MESSAGE_STRINGS[i])) { @@ -96,7 +96,7 @@ static QPair qmlTypeAsEnum(const QString &typeString) } } - if (ret.first == MaximumMessage && ret.second == MaximumRangeType) { + if (ret.first == UndefinedMessage && ret.second == UndefinedRangeType) { bool isNumber = false; int type = typeString.toUInt(&isNumber); if (isNumber && type < MaximumRangeType) @@ -309,7 +309,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream) int typeIndex = -1; - QPair messageAndRange(MaximumMessage, MaximumRangeType); + QPair messageAndRange(UndefinedMessage, UndefinedRangeType); int detailType = -1; QString displayName; QString data; @@ -317,7 +317,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream) int line = 0, column = 0; auto clearType = [&](){ - messageAndRange = QPair(MaximumMessage, MaximumRangeType); + messageAndRange = QPair(UndefinedMessage, UndefinedRangeType); detailType = -1; displayName.clear(); data.clear(); @@ -389,7 +389,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream) // confusing), even though they clearly aren't ranges. Convert that to something // sane here. if (detailType == 4) { - messageAndRange = QPair(Event, MaximumRangeType); + messageAndRange = QPair(Event, UndefinedRangeType); detailType = AnimationFrame; } } @@ -695,13 +695,13 @@ void QmlProfilerTraceFile::saveQtd(QIODevice *device) QStack stack; qint64 lastProgressTimestamp = traceStart(); modelManager()->replayQmlEvents([&](const QmlEvent &event, const QmlEventType &type) { - if (type.rangeType() != MaximumRangeType && event.rangeStage() == RangeStart) { + if (type.rangeType() != UndefinedRangeType && event.rangeStage() == RangeStart) { stack.push(event); return; } stream.writeStartElement(_("range")); - if (type.rangeType() != MaximumRangeType && event.rangeStage() == RangeEnd) { + if (type.rangeType() != UndefinedRangeType && event.rangeStage() == RangeEnd) { QmlEvent start = stack.pop(); stream.writeAttribute(_("startTime"), QString::number(start.timestamp())); stream.writeAttribute(_("duration"), diff --git a/src/plugins/qmlprofiler/qmltypedevent.cpp b/src/plugins/qmlprofiler/qmltypedevent.cpp index dade47c6dbd..e79080d48e8 100644 --- a/src/plugins/qmlprofiler/qmltypedevent.cpp +++ b/src/plugins/qmlprofiler/qmltypedevent.cpp @@ -36,10 +36,10 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) stream >> time >> messageType; - if (messageType < 0 || messageType > MaximumMessage) - messageType = MaximumMessage; + if (messageType < 0 || messageType >= MaximumMessage) + messageType = UndefinedMessage; - RangeType rangeType = MaximumRangeType; + RangeType rangeType = UndefinedRangeType; if (!stream.atEnd()) { stream >> subtype; if (subtype >= 0 && subtype < MaximumRangeType) @@ -54,7 +54,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) switch (messageType) { case Event: { - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); switch (subtype) { case StartTrace: case EndTrace: { @@ -98,7 +98,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) break; } case Complete: { - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); break; } case SceneGraphFrame: { @@ -110,7 +110,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) params.push_back(param); } - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); event.event.setNumbers, qint64>(params); break; } @@ -125,7 +125,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) refcount = 1; } - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype, + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype, QmlEventLocation(filename, 0, 0)); event.event.setNumbers({width, height, refcount}); break; @@ -134,7 +134,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) qint64 delta; stream >> delta; - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); event.event.setNumbers({delta}); break; } @@ -147,7 +147,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) // otherwise it's the old binding type of 4 bytes } - event.type = QmlEventType(MaximumMessage, rangeType, -1); + event.type = QmlEventType(UndefinedMessage, rangeType, -1); event.event.setRangeStage(RangeStart); break; } @@ -155,7 +155,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) QString data; stream >> data; - event.type = QmlEventType(MaximumMessage, rangeType, -1, QmlEventLocation(), data); + event.type = QmlEventType(UndefinedMessage, rangeType, -1, QmlEventLocation(), data); event.event.setRangeStage(RangeData); if (!stream.atEnd()) stream >> event.serverTypeId; @@ -173,13 +173,13 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) stream >> event.serverTypeId; } - event.type = QmlEventType(MaximumMessage, rangeType, -1, + event.type = QmlEventType(UndefinedMessage, rangeType, -1, QmlEventLocation(filename, line, column)); event.event.setRangeStage(RangeLocation); break; } case RangeEnd: { - event.type = QmlEventType(MaximumMessage, rangeType, -1); + event.type = QmlEventType(UndefinedMessage, rangeType, -1); event.event.setRangeStage(RangeEnd); break; } @@ -192,13 +192,13 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event) stream >> param; params.push_back(param); } - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); event.event.setNumbers, qint64>(params); break; } default: event.event.setNumbers({}); - event.type = QmlEventType(static_cast(messageType), MaximumRangeType, subtype); + event.type = QmlEventType(static_cast(messageType), UndefinedRangeType, subtype); break; } diff --git a/src/plugins/qmlprofiler/quick3dmodel.cpp b/src/plugins/qmlprofiler/quick3dmodel.cpp index ac8f42d5338..be521818456 100644 --- a/src/plugins/qmlprofiler/quick3dmodel.cpp +++ b/src/plugins/qmlprofiler/quick3dmodel.cpp @@ -33,7 +33,7 @@ namespace Internal { Quick3DModel::Quick3DModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, Quick3DEvent, MaximumRangeType, ProfileQuick3D, parent), + QmlProfilerTimelineModel(manager, Quick3DEvent, UndefinedRangeType, ProfileQuick3D, parent), m_maximumMsgType(-1) { } diff --git a/src/plugins/qmlprofiler/scenegraphtimelinemodel.cpp b/src/plugins/qmlprofiler/scenegraphtimelinemodel.cpp index 951cd3eb43a..8d868d16f37 100644 --- a/src/plugins/qmlprofiler/scenegraphtimelinemodel.cpp +++ b/src/plugins/qmlprofiler/scenegraphtimelinemodel.cpp @@ -77,7 +77,7 @@ Q_STATIC_ASSERT(sizeof(StageLabels) == SceneGraphTimelineModel::SceneGraphTimelineModel(QmlProfilerModelManager *manager, Timeline::TimelineModelAggregator *parent) : - QmlProfilerTimelineModel(manager, SceneGraphFrame, MaximumRangeType, ProfileSceneGraph, parent) + QmlProfilerTimelineModel(manager, SceneGraphFrame, UndefinedRangeType, ProfileSceneGraph, parent) { } diff --git a/src/plugins/qmlprofiler/tests/check.dat b/src/plugins/qmlprofiler/tests/check.dat index 7431903a1e91c8cb5019966bd1d957f6c3c05845..3895dfc182093321ffbbe8a2fab643829406a645 100644 GIT binary patch literal 36752 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 PXU^1c{IB1+appendEventType( - QmlEventType(MaximumMessage, + QmlEventType(UndefinedMessage, static_cast(static_cast(Javascript) - i), -1, QmlEventLocation("somefile.js", i, 20 - i), QString("funcfunc"))); diff --git a/src/plugins/qmlprofiler/tests/inputeventsmodel_test.cpp b/src/plugins/qmlprofiler/tests/inputeventsmodel_test.cpp index 141708f0639..941aca41101 100644 --- a/src/plugins/qmlprofiler/tests/inputeventsmodel_test.cpp +++ b/src/plugins/qmlprofiler/tests/inputeventsmodel_test.cpp @@ -41,8 +41,8 @@ static InputEventType inputType(int i) InputEventsModelTest::InputEventsModelTest(QObject *parent) : QObject(parent), model(&manager, &aggregator) { - keyTypeId = manager.appendEventType(QmlEventType(Event, MaximumRangeType, Key)); - mouseTypeId = manager.appendEventType(QmlEventType(Event, MaximumRangeType, Mouse)); + keyTypeId = manager.appendEventType(QmlEventType(Event, UndefinedRangeType, Key)); + mouseTypeId = manager.appendEventType(QmlEventType(Event, UndefinedRangeType, Mouse)); } void InputEventsModelTest::initTestCase() diff --git a/src/plugins/qmlprofiler/tests/memoryusagemodel_test.cpp b/src/plugins/qmlprofiler/tests/memoryusagemodel_test.cpp index 804c6d8fb1f..6e6eb9dce32 100644 --- a/src/plugins/qmlprofiler/tests/memoryusagemodel_test.cpp +++ b/src/plugins/qmlprofiler/tests/memoryusagemodel_test.cpp @@ -41,11 +41,11 @@ void MemoryUsageModelTest::initTestCase() heapPageTypeId = manager.numEventTypes(); - manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, HeapPage)); + manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, HeapPage)); smallItemTypeId = manager.numEventTypes(); - manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, SmallItem)); + manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, SmallItem)); largeItemTypeId = manager.numEventTypes(); - manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, LargeItem)); + manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, LargeItem)); auto addMemoryEvents = [&]() { QmlEvent event; @@ -74,7 +74,7 @@ void MemoryUsageModelTest::initTestCase() addMemoryEvents(); rangeTypeId = manager.numEventTypes(); - manager.appendEventType(QmlEventType(MaximumMessage, Javascript, -1, + manager.appendEventType(QmlEventType(UndefinedMessage, Javascript, -1, QmlEventLocation(QString("somefile.js"), 10, 20), QString("funcfunc"))); diff --git a/src/plugins/qmlprofiler/tests/pixmapcachemodel_test.cpp b/src/plugins/qmlprofiler/tests/pixmapcachemodel_test.cpp index 97b124e016c..0aee302c81e 100644 --- a/src/plugins/qmlprofiler/tests/pixmapcachemodel_test.cpp +++ b/src/plugins/qmlprofiler/tests/pixmapcachemodel_test.cpp @@ -43,7 +43,7 @@ void PixmapCacheModelTest::initTestCase() for (int i = 0; i < MaximumPixmapEventType; ++i) { eventTypeIndices[i] = manager.numEventTypes(); - manager.appendEventType(QmlEventType(PixmapCacheEvent, MaximumRangeType, i, + manager.appendEventType(QmlEventType(PixmapCacheEvent, UndefinedRangeType, i, QmlEventLocation("dings.png", 0, 0))); } @@ -58,7 +58,7 @@ void PixmapCacheModelTest::initTestCase() for (int i = 0; i < MaximumPixmapEventType; ++i) { eventTypeIndices[i + MaximumPixmapEventType] = manager.numEventTypes(); - manager.appendEventType(QmlEventType(PixmapCacheEvent, MaximumRangeType, i, + manager.appendEventType(QmlEventType(PixmapCacheEvent, UndefinedRangeType, i, QmlEventLocation("blah.png", 0, 0))); } diff --git a/src/plugins/qmlprofiler/tests/qmleventtype_test.cpp b/src/plugins/qmlprofiler/tests/qmleventtype_test.cpp index 30157c7c7fd..a43a72581ba 100644 --- a/src/plugins/qmlprofiler/tests/qmleventtype_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmleventtype_test.cpp @@ -37,8 +37,8 @@ QmlEventTypeTest::QmlEventTypeTest(QObject *parent) : QObject(parent) void QmlEventTypeTest::testAccessors() { QmlEventType type; - QCOMPARE(type.message(), MaximumMessage); - QCOMPARE(type.rangeType(), MaximumRangeType); + QCOMPARE(type.message(), UndefinedMessage); + QCOMPARE(type.rangeType(), UndefinedMessage); QCOMPARE(type.detailType(), -1); QVERIFY(!type.location().isValid()); QVERIFY(type.data().isEmpty()); @@ -56,9 +56,9 @@ void QmlEventTypeTest::testAccessors() type.setDisplayName("disdis"); QCOMPARE(type.displayName(), QString("disdis")); - QmlEventType type2(MaximumMessage, Javascript, 12, QmlEventLocation("lala.js", 2, 3), "nehhh", + QmlEventType type2(UndefinedMessage, Javascript, 12, QmlEventLocation("lala.js", 2, 3), "nehhh", "brbr"); - QCOMPARE(type2.message(), MaximumMessage); + QCOMPARE(type2.message(), UndefinedMessage); QCOMPARE(type2.rangeType(), Javascript); QCOMPARE(type2.detailType(), 12); QCOMPARE(type2.location(), QmlEventLocation("lala.js", 2, 3)); @@ -107,13 +107,13 @@ void QmlEventTypeTest::testFeature() for (int i = 0; i < MaximumMessage; ++i) { for (int j = 0; j < MaximumEventType; ++j) { - QmlEventType type(static_cast(i), MaximumRangeType, j); + QmlEventType type(static_cast(i), UndefinedRangeType, j); QCOMPARE(type.feature(), features[i][j]); } } for (int i = 0; i < MaximumRangeType; ++i) { - QmlEventType type(MaximumMessage, static_cast(i)); + QmlEventType type(UndefinedMessage, static_cast(i)); QCOMPARE(static_cast(type.feature()), featureFromRangeType(static_cast(i))); } @@ -121,7 +121,7 @@ void QmlEventTypeTest::testFeature() void QmlEventTypeTest::testStreamOps() { - QmlEventType type(MaximumMessage, Javascript, -1, QmlEventLocation("socken.js", 12, 13), + QmlEventType type(UndefinedMessage, Javascript, -1, QmlEventLocation("socken.js", 12, 13), "lalala", "lelele"); QBuffer wbuffer; diff --git a/src/plugins/qmlprofiler/tests/qmlprofileranimationsmodel_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofileranimationsmodel_test.cpp index 1f16ddb6d5d..6a5773e4086 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofileranimationsmodel_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofileranimationsmodel_test.cpp @@ -46,7 +46,7 @@ void QmlProfilerAnimationsModelTest::initTestCase() QmlEvent event; event.setTypeIndex(manager.appendEventType( - QmlEventType(Event, MaximumRangeType, AnimationFrame))); + QmlEventType(Event, UndefinedRangeType, AnimationFrame))); for (int i = 0; i < 10; ++i) { event.setTimestamp(i); diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerbindingloopsrenderpass_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerbindingloopsrenderpass_test.cpp index 642720f34b0..c1dfa963868 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilerbindingloopsrenderpass_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilerbindingloopsrenderpass_test.cpp @@ -49,7 +49,7 @@ DummyModel::DummyModel(QmlProfilerModelManager *manager, void DummyModel::loadData() { - QmlEventType type(MaximumMessage, Binding); + QmlEventType type(UndefinedMessage, Binding); const int typeIndex = modelManager()->appendEventType(QmlEventType(type)); QCOMPARE(typeIndex, 0); diff --git a/src/plugins/qmlprofiler/tests/qmlprofilertraceclient_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilertraceclient_test.cpp index d986939f8c4..055e5ef000b 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilertraceclient_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilertraceclient_test.cpp @@ -77,8 +77,8 @@ void QmlProfilerTraceClientTest::testMessageReceived() modelManager.replayQmlEvents([&](const QmlEvent &event, const QmlEventType &type) { qint64 timestamp; - qint32 message; - qint32 rangeType; + quint8 message; + quint8 rangeType; checkStream >> timestamp >> message >> rangeType; QCOMPARE(event.timestamp(), timestamp); QCOMPARE(type.message(), static_cast(message));