OpenCoverage

qqmlprofilerevent.cpp

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/qmldebug/qqmlprofilerevent.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4bool operator==(const QQmlProfilerEvent &event1, const QQmlProfilerEvent &event2)-
5{-
6 if (event1.timestamp() != event2.timestamp()
event1.timesta...t2.timestamp()Description
TRUEnever evaluated
FALSEnever evaluated
|| event1.typeIndex() != event2.typeIndex()
event1.typeInd...t2.typeIndex()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
7 return
never executed: return false;
false;
never executed: return false;
0
8-
9-
10 return
never executed: return event1.numbers<QVarLengthArray<qint64>>() == event2.numbers<QVarLengthArray<qint64>>();
event1.numbers<QVarLengthArray<qint64>>() == event2.numbers<QVarLengthArray<qint64>>();
never executed: return event1.numbers<QVarLengthArray<qint64>>() == event2.numbers<QVarLengthArray<qint64>>();
0
11}-
12-
13bool operator!=(const QQmlProfilerEvent &event1, const QQmlProfilerEvent &event2)-
14{-
15 return
never executed: return !(event1 == event2);
!(event1 == event2);
never executed: return !(event1 == event2);
0
16}-
17-
18enum SerializationType {-
19 OneByte = 0,-
20 TwoByte = 1,-
21 FourByte = 2,-
22 EightByte = 3,-
23 TypeMask = 0x3-
24};-
25-
26enum SerializationTypeOffset {-
27 TimestampOffset = 0,-
28 TypeIndexOffset = 2,-
29 DataLengthOffset = 4,-
30 DataOffset = 6-
31};-
32-
33template<typename Number>-
34static inline void readNumbers(QDataStream &stream, Number *data, quint16 length)-
35{-
36 for (quint16 i = 0; i != length
i != lengthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
37 stream >> data[i];
never executed: stream >> data[i];
0
38}
never executed: end of block
0
39-
40template<typename Number>-
41static inline Number readNumber(QDataStream &stream, qint8 type)-
42{-
43 switch (type) {-
44 case
never executed: case OneByte:
OneByte:
never executed: case OneByte:
{
0
45 qint8 value;-
46 stream >> value;-
47 return
never executed: return static_cast<Number>(value);
static_cast<Number>(value);
never executed: return static_cast<Number>(value);
0
48 }-
49 case
never executed: case TwoByte:
TwoByte:
never executed: case TwoByte:
{
0
50 qint16 value;-
51 stream >> value;-
52 return
never executed: return static_cast<Number>(value);
static_cast<Number>(value);
never executed: return static_cast<Number>(value);
0
53 }-
54 case
never executed: case FourByte:
FourByte:
never executed: case FourByte:
{
0
55 qint32 value;-
56 stream >> value;-
57 return
never executed: return static_cast<Number>(value);
static_cast<Number>(value);
never executed: return static_cast<Number>(value);
0
58 }-
59 case
never executed: case EightByte:
EightByte:
never executed: case EightByte:
{
0
60 qint64 value;-
61 stream >> value;-
62 return
never executed: return static_cast<Number>(value);
static_cast<Number>(value);
never executed: return static_cast<Number>(value);
0
63 }-
64 default
never executed: default:
:
never executed: default:
0
65 do { ((false) ? static_cast<void>(0) : qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached", __FILE__, 106)); __builtin_unreachable(); } while (false);-
66 return
never executed: return 0;
0;
never executed: return 0;
0
67 }-
68}-
69-
70QDataStream &operator>>(QDataStream &stream, QQmlProfilerEvent &event)-
71{-
72 qint8 type;-
73 stream >> type;-
74-
75 event.m_timestamp = readNumber<qint64>(stream, (type >> TimestampOffset) & TypeMask);-
76 event.m_typeIndex = readNumber<qint32>(stream, (type >> TypeIndexOffset) & TypeMask);-
77 event.m_dataLength = readNumber<quint16>(stream, (type >> DataLengthOffset) & TypeMask);-
78-
79 uint bytesPerNumber = 1 << ((type >> DataOffset) & TypeMask);-
80-
81 if (event.m_dataLength * bytesPerNumber > sizeof(event.m_data)
event.m_dataLe...(event.m_data)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
82 event.m_dataType = static_cast<QQmlProfilerEvent::Type>((bytesPerNumber * 8)-
83 | QQmlProfilerEvent::External);-
84 event.m_data.external = malloc(event.m_dataLength * bytesPerNumber);-
85 }
never executed: end of block
else {
0
86 event.m_dataType = static_cast<QQmlProfilerEvent::Type>(bytesPerNumber * 8);-
87 }
never executed: end of block
0
88-
89 switch (event.m_dataType) {-
90 case
never executed: case QQmlProfilerEvent::Inline8Bit:
QQmlProfilerEvent::Inline8Bit:
never executed: case QQmlProfilerEvent::Inline8Bit:
0
91 readNumbers<qint8>(stream, event.m_data.internal8bit, event.m_dataLength);-
92 break;
never executed: break;
0
93 case
never executed: case QQmlProfilerEvent::External8Bit:
QQmlProfilerEvent::External8Bit:
never executed: case QQmlProfilerEvent::External8Bit:
0
94 readNumbers<qint8>(stream, static_cast<qint8 *>(event.m_data.external),-
95 event.m_dataLength);-
96 break;
never executed: break;
0
97 case
never executed: case QQmlProfilerEvent::Inline16Bit:
QQmlProfilerEvent::Inline16Bit:
never executed: case QQmlProfilerEvent::Inline16Bit:
0
98 readNumbers<qint16>(stream, event.m_data.internal16bit, event.m_dataLength);-
99 break;
never executed: break;
0
100 case
never executed: case QQmlProfilerEvent::External16Bit:
QQmlProfilerEvent::External16Bit:
never executed: case QQmlProfilerEvent::External16Bit:
0
101 readNumbers<qint16>(stream, static_cast<qint16 *>(event.m_data.external),-
102 event.m_dataLength);-
103 break;
never executed: break;
0
104 case
never executed: case QQmlProfilerEvent::Inline32Bit:
QQmlProfilerEvent::Inline32Bit:
never executed: case QQmlProfilerEvent::Inline32Bit:
0
105 readNumbers<qint32>(stream, event.m_data.internal32bit, event.m_dataLength);-
106 break;
never executed: break;
0
107 case
never executed: case QQmlProfilerEvent::External32Bit:
QQmlProfilerEvent::External32Bit:
never executed: case QQmlProfilerEvent::External32Bit:
0
108 readNumbers<qint32>(stream, static_cast<qint32 *>(event.m_data.external),-
109 event.m_dataLength);-
110 break;
never executed: break;
0
111 case
never executed: case QQmlProfilerEvent::Inline64Bit:
QQmlProfilerEvent::Inline64Bit:
never executed: case QQmlProfilerEvent::Inline64Bit:
0
112 readNumbers<qint64>(stream, event.m_data.internal64bit, event.m_dataLength);-
113 break;
never executed: break;
0
114 case
never executed: case QQmlProfilerEvent::External64Bit:
QQmlProfilerEvent::External64Bit:
never executed: case QQmlProfilerEvent::External64Bit:
0
115 readNumbers<qint64>(stream, static_cast<qint64 *>(event.m_data.external),-
116 event.m_dataLength);-
117 break;
never executed: break;
0
118 default
never executed: default:
:
never executed: default:
0
119 do { ((false) ? static_cast<void>(0) : qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached", __FILE__, 160)); __builtin_unreachable(); } while (false);-
120 break;
never executed: break;
0
121 }-
122-
123 return
never executed: return stream;
stream;
never executed: return stream;
0
124}-
125-
126static inline qint8 minimumType(const QQmlProfilerEvent &event, quint16 length,-
127 quint16 origBitsPerNumber)-
128{-
129 qint8 type = OneByte;-
130 bool ok = true;-
131 for (quint16 i = 0; i < length
i < lengthDescription
TRUEnever evaluated
FALSEnever evaluated
;) {
0
132 if ((
(1 << type) ==...sPerNumber / 8Description
TRUEnever evaluated
FALSEnever evaluated
1 << type) == origBitsPerNumber / 8
(1 << type) ==...sPerNumber / 8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
133 return
never executed: return type;
type;
never executed: return type;
0
134 switch (type) {-
135 case
never executed: case OneByte:
OneByte:
never executed: case OneByte:
0
136 ok = (event.number<qint8>(i) == event.number<qint64>(i));-
137 break;
never executed: break;
0
138 case
never executed: case TwoByte:
TwoByte:
never executed: case TwoByte:
0
139 ok = (event.number<qint16>(i) == event.number<qint64>(i));-
140 break;
never executed: break;
0
141 case
never executed: case FourByte:
FourByte:
never executed: case FourByte:
0
142 ok = (event.number<qint32>(i) == event.number<qint64>(i));-
143 break;
never executed: break;
0
144 default
never executed: default:
:
never executed: default:
0
145-
146 do { ((false) ? static_cast<void>(0) : qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached", __FILE__, 187)); __builtin_unreachable(); } while (false);-
147 break;
never executed: break;
0
148 }-
149-
150 if (ok
okDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
151 ++
never executed: ++i;
i;
never executed: ++i;
0
152 else-
153 ++
never executed: ++type;
type;
never executed: ++type;
0
154 }-
155 return
never executed: return type;
type;
never executed: return type;
0
156}-
157-
158template<typename Number>-
159static inline qint8 minimumType(Number number)-
160{-
161 if (static_cast<
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
qint8>(number) == number
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
162 return
never executed: return OneByte;
OneByte;
never executed: return OneByte;
0
163 if (static_cast<
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
qint16>(number) == number
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
164 return
never executed: return TwoByte;
TwoByte;
never executed: return TwoByte;
0
165 if (static_cast<
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
qint32>(number) == number
static_cast<qi...ber) == numberDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
166 return
never executed: return FourByte;
FourByte;
never executed: return FourByte;
0
167 return
never executed: return EightByte;
EightByte;
never executed: return EightByte;
0
168}-
169-
170template<typename Number>-
171static inline void writeNumbers(QDataStream &stream, const QQmlProfilerEvent &event, quint16 length)-
172{-
173 for (quint16 i = 0; i != length
i != lengthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
174 stream << event.number<Number>(i);
never executed: stream << event.number<Number>(i);
0
175}
never executed: end of block
0
176-
177template<typename Number>-
178static inline void writeNumber(QDataStream &stream, Number number, qint8 type)-
179{-
180 switch (type) {-
181 case
never executed: case OneByte:
OneByte:
never executed: case OneByte:
0
182 stream << static_cast<qint8>(number);-
183 break;
never executed: break;
0
184 case
never executed: case TwoByte:
TwoByte:
never executed: case TwoByte:
0
185 stream << static_cast<qint16>(number);-
186 break;
never executed: break;
0
187 case
never executed: case FourByte:
FourByte:
never executed: case FourByte:
0
188 stream << static_cast<qint32>(number);-
189 break;
never executed: break;
0
190 case
never executed: case EightByte:
EightByte:
never executed: case EightByte:
0
191 stream << static_cast<qint64>(number);-
192 break;
never executed: break;
0
193 default
never executed: default:
:
never executed: default:
0
194 do { ((false) ? static_cast<void>(0) : qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached", __FILE__, 235)); __builtin_unreachable(); } while (false);-
195 break;
never executed: break;
0
196 }-
197}-
198-
199QDataStream &operator<<(QDataStream &stream, const QQmlProfilerEvent &event)-
200{-
201 qint8 type = minimumType(event.m_timestamp);-
202 type |= minimumType(event.m_typeIndex) << TypeIndexOffset;-
203 type |= minimumType(event.m_dataLength) << DataLengthOffset;-
204 type |= minimumType(event, event.m_dataLength, event.m_dataType) << DataOffset;-
205 stream << type;-
206-
207 writeNumber(stream, event.m_timestamp, (type >> TimestampOffset) & TypeMask);-
208 writeNumber(stream, event.m_typeIndex, (type >> TypeIndexOffset) & TypeMask);-
209 writeNumber(stream, event.m_dataLength, (type >> DataLengthOffset) & TypeMask);-
210-
211 switch ((type >> DataOffset) & TypeMask) {-
212 case
never executed: case OneByte:
OneByte:
never executed: case OneByte:
0
213 writeNumbers<qint8>(stream, event, event.m_dataLength);-
214 break;
never executed: break;
0
215 case
never executed: case TwoByte:
TwoByte:
never executed: case TwoByte:
0
216 writeNumbers<qint16>(stream, event, event.m_dataLength);-
217 break;
never executed: break;
0
218 case
never executed: case FourByte:
FourByte:
never executed: case FourByte:
0
219 writeNumbers<qint32>(stream, event, event.m_dataLength);-
220 break;
never executed: break;
0
221 case
never executed: case EightByte:
EightByte:
never executed: case EightByte:
0
222 writeNumbers<qint64>(stream, event, event.m_dataLength);-
223 break;
never executed: break;
0
224 default
never executed: default:
:
never executed: default:
0
225 do { ((false) ? static_cast<void>(0) : qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached", __FILE__, 266)); __builtin_unreachable(); } while (false);-
226 break;
never executed: break;
0
227 }-
228-
229 return
never executed: return stream;
stream;
never executed: return stream;
0
230}-
231-
232-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.0