qdbusdemarshaller.cpp

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/**************************************************************************** -
2** -
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -
4** Contact: http://www.qt-project.org/legal -
5** -
6** This file is part of the QtDBus module of the Qt Toolkit. -
7** -
8** $QT_BEGIN_LICENSE:LGPL$ -
9** Commercial License Usage -
10** Licensees holding valid commercial Qt licenses may use this file in -
11** accordance with the commercial license agreement provided with the -
12** Software or, alternatively, in accordance with the terms contained in -
13** a written agreement between you and Digia. For licensing terms and -
14** conditions see http://qt.digia.com/licensing. For further information -
15** use the contact form at http://qt.digia.com/contact-us. -
16** -
17** GNU Lesser General Public License Usage -
18** Alternatively, this file may be used under the terms of the GNU Lesser -
19** General Public License version 2.1 as published by the Free Software -
20** Foundation and appearing in the file LICENSE.LGPL included in the -
21** packaging of this file. Please review the following information to -
22** ensure the GNU Lesser General Public License version 2.1 requirements -
23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -
24** -
25** In addition, as a special exception, Digia gives you certain additional -
26** rights. These rights are described in the Digia Qt LGPL Exception -
27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -
28** -
29** GNU General Public License Usage -
30** Alternatively, this file may be used under the terms of the GNU -
31** General Public License version 3.0 as published by the Free Software -
32** Foundation and appearing in the file LICENSE.GPL included in the -
33** packaging of this file. Please review the following information to -
34** ensure the GNU General Public License version 3.0 requirements will be -
35** met: http://www.gnu.org/copyleft/gpl.html. -
36** -
37** -
38** $QT_END_LICENSE$ -
39** -
40****************************************************************************/ -
41 -
42#include "qdbusargument_p.h" -
43#include "qdbusconnection.h" -
44#include <stdlib.h> -
45 -
46QT_BEGIN_NAMESPACE -
47 -
48template <typename T> -
49static inline T qIterGet(DBusMessageIter *it) -
50{ -
51 // Use a union of expected and largest type q_dbus_message_iter_get_basic -
52 // will return to ensure reading the wrong basic type does not result in -
53 // stack overwrite -
54 union {
executed (the execution status of this line is deduced): union {
-
55 // The value to be extracted
executed (the execution status of this line is deduced):
-
56 T t;
executed (the execution status of this line is deduced): T t;
-
57 // Largest type that q_dbus_message_iter_get_basic will return
executed (the execution status of this line is deduced):
-
58 // according to dbus_message_iter_get_basic API documentation
executed (the execution status of this line is deduced):
-
59 dbus_uint64_t maxValue;
executed (the execution status of this line is deduced): dbus_uint64_t maxValue;
-
60 // A pointer to ensure no stack overwrite in case there is a platform
executed (the execution status of this line is deduced):
-
61 // where sizeof(void*) > sizeof(dbus_uint64_t)
executed (the execution status of this line is deduced):
-
62 void* ptr;
executed (the execution status of this line is deduced): void* ptr;
-
63 } value;
executed (the execution status of this line is deduced): } value;
-
64 -
65 // Initialize the value in case a narrower type is extracted to it. -
66 // Note that the result of extracting a narrower type in place of a wider -
67 // one and vice-versa will be platform-dependent. -
68 value.t = T();
executed (the execution status of this line is deduced): value.t = T();
-
69 -
70 q_dbus_message_iter_get_basic(it, &value);
executed (the execution status of this line is deduced): q_dbus_message_iter_get_basic(it, &value);
-
71 q_dbus_message_iter_next(it);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(it);
-
72 return value.t;
executed: return value.t;
Execution Count:1712
1712
73} -
74 -
75QDBusDemarshaller::~QDBusDemarshaller() -
76{ -
77} -
78 -
79inline QString QDBusDemarshaller::currentSignature() -
80{ -
81 char *sig = q_dbus_message_iter_get_signature(&iterator);
executed (the execution status of this line is deduced): char *sig = q_dbus_message_iter_get_signature(&iterator);
-
82 QString retval = QString::fromUtf8(sig);
executed (the execution status of this line is deduced): QString retval = QString::fromUtf8(sig);
-
83 q_dbus_free(sig);
executed (the execution status of this line is deduced): q_dbus_free(sig);
-
84 -
85 return retval;
executed: return retval;
Execution Count:35
35
86} -
87 -
88inline uchar QDBusDemarshaller::toByte() -
89{ -
90 return qIterGet<uchar>(&iterator);
never executed: return qIterGet<uchar>(&iterator);
0
91} -
92 -
93inline bool QDBusDemarshaller::toBool() -
94{ -
95 return bool(qIterGet<dbus_bool_t>(&iterator));
executed: return bool(qIterGet<dbus_bool_t>(&iterator));
Execution Count:852
852
96} -
97 -
98inline ushort QDBusDemarshaller::toUShort() -
99{ -
100 return qIterGet<dbus_uint16_t>(&iterator);
never executed: return qIterGet<dbus_uint16_t>(&iterator);
0
101} -
102 -
103inline short QDBusDemarshaller::toShort() -
104{ -
105 return qIterGet<dbus_int16_t>(&iterator);
executed: return qIterGet<dbus_int16_t>(&iterator);
Execution Count:2
2
106} -
107 -
108inline int QDBusDemarshaller::toInt() -
109{ -
110 return qIterGet<dbus_int32_t>(&iterator);
executed: return qIterGet<dbus_int32_t>(&iterator);
Execution Count:159
159
111} -
112 -
113inline uint QDBusDemarshaller::toUInt() -
114{ -
115 return qIterGet<dbus_uint32_t>(&iterator);
executed: return qIterGet<dbus_uint32_t>(&iterator);
Execution Count:34
34
116} -
117 -
118inline qlonglong QDBusDemarshaller::toLongLong() -
119{ -
120 return qIterGet<qlonglong>(&iterator);
executed: return qIterGet<qlonglong>(&iterator);
Execution Count:6
6
121} -
122 -
123inline qulonglong QDBusDemarshaller::toULongLong() -
124{ -
125 return qIterGet<qulonglong>(&iterator);
never executed: return qIterGet<qulonglong>(&iterator);
0
126} -
127 -
128inline double QDBusDemarshaller::toDouble() -
129{ -
130 return qIterGet<double>(&iterator);
never executed: return qIterGet<double>(&iterator);
0
131} -
132 -
133inline QString QDBusDemarshaller::toStringUnchecked() -
134{ -
135 return QString::fromUtf8(qIterGet<char *>(&iterator));
executed: return QString::fromUtf8(qIterGet<char *>(&iterator));
Execution Count:657
657
136} -
137 -
138inline QString QDBusDemarshaller::toString() -
139{ -
140 if (isCurrentTypeStringLike())
partially evaluated: isCurrentTypeStringLike()
TRUEFALSE
yes
Evaluation Count:84
no
Evaluation Count:0
0-84
141 return toStringUnchecked();
executed: return toStringUnchecked();
Execution Count:84
84
142 else -
143 return QString();
never executed: return QString();
0
144} -
145 -
146inline QDBusObjectPath QDBusDemarshaller::toObjectPathUnchecked() -
147 { -
148 return QDBusObjectPath(QString::fromUtf8(qIterGet<char *>(&iterator)));
executed: return QDBusObjectPath(QString::fromUtf8(qIterGet<char *>(&iterator)));
Execution Count:2
2
149 } -
150 -
151inline QDBusObjectPath QDBusDemarshaller::toObjectPath() -
152{ -
153 if (isCurrentTypeStringLike())
partially evaluated: isCurrentTypeStringLike()
TRUEFALSE
yes
Evaluation Count:2
no
Evaluation Count:0
0-2
154 return toObjectPathUnchecked();
executed: return toObjectPathUnchecked();
Execution Count:2
2
155 else -
156 return QDBusObjectPath();
never executed: return QDBusObjectPath();
0
157} -
158 -
159inline QDBusSignature QDBusDemarshaller::toSignatureUnchecked() -
160 { -
161 return QDBusSignature(QString::fromUtf8(qIterGet<char *>(&iterator)));
never executed: return QDBusSignature(QString::fromUtf8(qIterGet<char *>(&iterator)));
0
162 } -
163 -
164inline QDBusSignature QDBusDemarshaller::toSignature() -
165{ -
166 if (isCurrentTypeStringLike())
never evaluated: isCurrentTypeStringLike()
0
167 return toSignatureUnchecked();
never executed: return toSignatureUnchecked();
0
168 else -
169 return QDBusSignature();
never executed: return QDBusSignature();
0
170} -
171 -
172inline QDBusUnixFileDescriptor QDBusDemarshaller::toUnixFileDescriptor() -
173{ -
174 QDBusUnixFileDescriptor fd;
never executed (the execution status of this line is deduced): QDBusUnixFileDescriptor fd;
-
175 fd.giveFileDescriptor(qIterGet<dbus_int32_t>(&iterator));
never executed (the execution status of this line is deduced): fd.giveFileDescriptor(qIterGet<dbus_int32_t>(&iterator));
-
176 return fd;
never executed: return fd;
0
177} -
178 -
179inline QDBusVariant QDBusDemarshaller::toVariant() -
180{ -
181 QDBusDemarshaller sub(capabilities);
executed (the execution status of this line is deduced): QDBusDemarshaller sub(capabilities);
-
182 sub.message = q_dbus_message_ref(message);
executed (the execution status of this line is deduced): sub.message = q_dbus_message_ref(message);
-
183 q_dbus_message_iter_recurse(&iterator, &sub.iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_recurse(&iterator, &sub.iterator);
-
184 q_dbus_message_iter_next(&iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
185 -
186 return QDBusVariant( sub.toVariantInternal() );
executed: return QDBusVariant( sub.toVariantInternal() );
Execution Count:189
189
187} -
188 -
189QDBusArgument::ElementType QDBusDemarshaller::currentType() -
190{ -
191 switch (q_dbus_message_iter_get_arg_type(&iterator)) { -
192 case DBUS_TYPE_BYTE: -
193 case DBUS_TYPE_INT16: -
194 case DBUS_TYPE_UINT16: -
195 case DBUS_TYPE_INT32: -
196 case DBUS_TYPE_UINT32: -
197 case DBUS_TYPE_INT64: -
198 case DBUS_TYPE_UINT64: -
199 case DBUS_TYPE_BOOLEAN: -
200 case DBUS_TYPE_DOUBLE: -
201 case DBUS_TYPE_STRING: -
202 case DBUS_TYPE_OBJECT_PATH: -
203 case DBUS_TYPE_SIGNATURE: -
204 return QDBusArgument::BasicType;
never executed: return QDBusArgument::BasicType;
0
205 -
206 case DBUS_TYPE_VARIANT: -
207 return QDBusArgument::VariantType;
never executed: return QDBusArgument::VariantType;
0
208 -
209 case DBUS_TYPE_ARRAY: -
210 switch (q_dbus_message_iter_get_element_type(&iterator)) { -
211 case DBUS_TYPE_BYTE: -
212 case DBUS_TYPE_STRING: -
213 // QByteArray and QStringList -
214 return QDBusArgument::BasicType;
never executed: return QDBusArgument::BasicType;
0
215 case DBUS_TYPE_DICT_ENTRY: -
216 return QDBusArgument::MapType;
never executed: return QDBusArgument::MapType;
0
217 default: -
218 return QDBusArgument::ArrayType;
never executed: return QDBusArgument::ArrayType;
0
219 } -
220 -
221 case DBUS_TYPE_STRUCT: -
222 return QDBusArgument::StructureType;
never executed: return QDBusArgument::StructureType;
0
223 case DBUS_TYPE_DICT_ENTRY: -
224 return QDBusArgument::MapEntryType;
never executed: return QDBusArgument::MapEntryType;
0
225 -
226 case DBUS_TYPE_UNIX_FD: -
227 return capabilities & QDBusConnection::UnixFileDescriptorPassing ?
never executed: return capabilities & QDBusConnection::UnixFileDescriptorPassing ? QDBusArgument::BasicType : QDBusArgument::UnknownType;
0
228 QDBusArgument::BasicType : QDBusArgument::UnknownType;
never executed: return capabilities & QDBusConnection::UnixFileDescriptorPassing ? QDBusArgument::BasicType : QDBusArgument::UnknownType;
0
229 -
230 case DBUS_TYPE_INVALID: -
231 return QDBusArgument::UnknownType;
never executed: return QDBusArgument::UnknownType;
0
232 -
233// default: -
234// qWarning("QDBusDemarshaller: Found unknown D-Bus type %d '%c'", -
235// q_dbus_message_iter_get_arg_type(&iterator), -
236// q_dbus_message_iter_get_arg_type(&iterator)); -
237 } -
238 return QDBusArgument::UnknownType;
never executed: return QDBusArgument::UnknownType;
0
239} -
240 -
241QVariant QDBusDemarshaller::toVariantInternal() -
242{ -
243 switch (q_dbus_message_iter_get_arg_type(&iterator)) { -
244 case DBUS_TYPE_BYTE: -
245 return QVariant::fromValue(toByte());
never executed: return QVariant::fromValue(toByte());
0
246 case DBUS_TYPE_INT16: -
247 return QVariant::fromValue(toShort());
executed: return QVariant::fromValue(toShort());
Execution Count:2
2
248 case DBUS_TYPE_UINT16: -
249 return QVariant::fromValue(toUShort());
never executed: return QVariant::fromValue(toUShort());
0
250 case DBUS_TYPE_INT32: -
251 return toInt();
executed: return toInt();
Execution Count:81
81
252 case DBUS_TYPE_UINT32: -
253 return toUInt();
executed: return toUInt();
Execution Count:34
34
254 case DBUS_TYPE_DOUBLE: -
255 return toDouble();
never executed: return toDouble();
0
256 case DBUS_TYPE_BOOLEAN: -
257 return toBool();
executed: return toBool();
Execution Count:852
852
258 case DBUS_TYPE_INT64: -
259 return toLongLong();
executed: return toLongLong();
Execution Count:2
2
260 case DBUS_TYPE_UINT64: -
261 return toULongLong();
never executed: return toULongLong();
0
262 case DBUS_TYPE_STRING: -
263 return toStringUnchecked();
executed: return toStringUnchecked();
Execution Count:525
525
264 case DBUS_TYPE_OBJECT_PATH: -
265 return QVariant::fromValue(toObjectPathUnchecked());
never executed: return QVariant::fromValue(toObjectPathUnchecked());
0
266 case DBUS_TYPE_SIGNATURE: -
267 return QVariant::fromValue(toSignatureUnchecked());
never executed: return QVariant::fromValue(toSignatureUnchecked());
0
268 case DBUS_TYPE_VARIANT: -
269 return QVariant::fromValue(toVariant());
executed: return QVariant::fromValue(toVariant());
Execution Count:113
113
270 -
271 case DBUS_TYPE_ARRAY: -
272 switch (q_dbus_message_iter_get_element_type(&iterator)) { -
273 case DBUS_TYPE_BYTE: -
274 // QByteArray -
275 return toByteArrayUnchecked();
executed: return toByteArrayUnchecked();
Execution Count:6
6
276 case DBUS_TYPE_STRING: -
277 return toStringListUnchecked();
executed: return toStringListUnchecked();
Execution Count:20
20
278 case DBUS_TYPE_DICT_ENTRY: -
279 return QVariant::fromValue(duplicate());
executed: return QVariant::fromValue(duplicate());
Execution Count:22
22
280 -
281 default: -
282 return QVariant::fromValue(duplicate());
executed: return QVariant::fromValue(duplicate());
Execution Count:31
31
283 } -
284 -
285 case DBUS_TYPE_STRUCT: -
286 return QVariant::fromValue(duplicate());
executed: return QVariant::fromValue(duplicate());
Execution Count:24
24
287 -
288 case DBUS_TYPE_UNIX_FD: -
289 if (capabilities & QDBusConnection::UnixFileDescriptorPassing)
never evaluated: capabilities & QDBusConnection::UnixFileDescriptorPassing
0
290 return QVariant::fromValue(toUnixFileDescriptor());
never executed: return QVariant::fromValue(toUnixFileDescriptor());
0
291 // fall through -
292 -
293 default:
code before this statement never executed: default:
0
294// qWarning("QDBusDemarshaller: Found unknown D-Bus type %d '%c'", -
295// q_dbus_message_iter_get_arg_type(&iterator), -
296// q_dbus_message_iter_get_arg_type(&iterator)); -
297 char *ptr = 0;
never executed (the execution status of this line is deduced): char *ptr = 0;
-
298 ptr += q_dbus_message_iter_get_arg_type(&iterator);
never executed (the execution status of this line is deduced): ptr += q_dbus_message_iter_get_arg_type(&iterator);
-
299 q_dbus_message_iter_next(&iterator);
never executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
300 -
301 // I hope you never dereference this pointer! -
302 return QVariant::fromValue<void *>(ptr);
never executed: return QVariant::fromValue<void *>(ptr);
0
303 }; -
304}
never executed: }
0
305 -
306bool QDBusDemarshaller::isCurrentTypeStringLike() -
307{ -
308 const int type = q_dbus_message_iter_get_arg_type(&iterator);
executed (the execution status of this line is deduced): const int type = q_dbus_message_iter_get_arg_type(&iterator);
-
309 switch (type) { -
310 case DBUS_TYPE_STRING: //FALLTHROUGH -
311 case DBUS_TYPE_OBJECT_PATH: //FALLTHROUGH -
312 case DBUS_TYPE_SIGNATURE: -
313 return true;
executed: return true;
Execution Count:86
86
314 default: -
315 return false;
never executed: return false;
0
316 } -
317}
never executed: }
0
318 -
319QStringList QDBusDemarshaller::toStringListUnchecked() -
320{ -
321 QStringList list;
executed (the execution status of this line is deduced): QStringList list;
-
322 -
323 QDBusDemarshaller sub(capabilities);
executed (the execution status of this line is deduced): QDBusDemarshaller sub(capabilities);
-
324 q_dbus_message_iter_recurse(&iterator, &sub.iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_recurse(&iterator, &sub.iterator);
-
325 q_dbus_message_iter_next(&iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
326 while (!sub.atEnd())
evaluated: !sub.atEnd()
TRUEFALSE
yes
Evaluation Count:48
yes
Evaluation Count:20
20-48
327 list.append(sub.toStringUnchecked());
executed: list.append(sub.toStringUnchecked());
Execution Count:48
48
328 -
329 return list;
executed: return list;
Execution Count:20
20
330} -
331 -
332QStringList QDBusDemarshaller::toStringList() -
333{ -
334 if (q_dbus_message_iter_get_arg_type(&iterator) == DBUS_TYPE_ARRAY
never evaluated: q_dbus_message_iter_get_arg_type(&iterator) == ((int) 'a')
0
335 && q_dbus_message_iter_get_element_type(&iterator) == DBUS_TYPE_STRING)
never evaluated: q_dbus_message_iter_get_element_type(&iterator) == ((int) 's')
0
336 return toStringListUnchecked();
never executed: return toStringListUnchecked();
0
337 else -
338 return QStringList();
never executed: return QStringList();
0
339} -
340 -
341QByteArray QDBusDemarshaller::toByteArrayUnchecked() -
342{ -
343 DBusMessageIter sub;
executed (the execution status of this line is deduced): DBusMessageIter sub;
-
344 q_dbus_message_iter_recurse(&iterator, &sub);
executed (the execution status of this line is deduced): q_dbus_message_iter_recurse(&iterator, &sub);
-
345 q_dbus_message_iter_next(&iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
346 int len;
executed (the execution status of this line is deduced): int len;
-
347 char* data;
executed (the execution status of this line is deduced): char* data;
-
348 q_dbus_message_iter_get_fixed_array(&sub,&data,&len);
executed (the execution status of this line is deduced): q_dbus_message_iter_get_fixed_array(&sub,&data,&len);
-
349 return QByteArray(data,len);
executed: return QByteArray(data,len);
Execution Count:6
6
350} -
351 -
352QByteArray QDBusDemarshaller::toByteArray() -
353{ -
354 if (q_dbus_message_iter_get_arg_type(&iterator) == DBUS_TYPE_ARRAY
never evaluated: q_dbus_message_iter_get_arg_type(&iterator) == ((int) 'a')
0
355 && q_dbus_message_iter_get_element_type(&iterator) == DBUS_TYPE_BYTE) {
never evaluated: q_dbus_message_iter_get_element_type(&iterator) == ((int) 'y')
0
356 return toByteArrayUnchecked();
never executed: return toByteArrayUnchecked();
0
357 } -
358 return QByteArray();
never executed: return QByteArray();
0
359} -
360 -
361bool QDBusDemarshaller::atEnd() -
362{ -
363 // dbus_message_iter_has_next is broken if the list has one single element -
364 return q_dbus_message_iter_get_arg_type(&iterator) == DBUS_TYPE_INVALID;
executed: return q_dbus_message_iter_get_arg_type(&iterator) == ((int) '\0');
Execution Count:3215
3215
365} -
366 -
367inline QDBusDemarshaller *QDBusDemarshaller::beginStructure() -
368{ -
369 return beginCommon();
executed: return beginCommon();
Execution Count:32
32
370} -
371 -
372inline QDBusDemarshaller *QDBusDemarshaller::beginArray() -
373{ -
374 return beginCommon();
executed: return beginCommon();
Execution Count:31
31
375} -
376 -
377inline QDBusDemarshaller *QDBusDemarshaller::beginMap() -
378{ -
379 return beginCommon();
executed: return beginCommon();
Execution Count:20
20
380} -
381 -
382inline QDBusDemarshaller *QDBusDemarshaller::beginMapEntry() -
383{ -
384 return beginCommon();
executed: return beginCommon();
Execution Count:64
64
385} -
386 -
387QDBusDemarshaller *QDBusDemarshaller::beginCommon() -
388{ -
389 QDBusDemarshaller *d = new QDBusDemarshaller(capabilities);
executed (the execution status of this line is deduced): QDBusDemarshaller *d = new QDBusDemarshaller(capabilities);
-
390 d->parent = this;
executed (the execution status of this line is deduced): d->parent = this;
-
391 d->message = q_dbus_message_ref(message);
executed (the execution status of this line is deduced): d->message = q_dbus_message_ref(message);
-
392 -
393 // recurse -
394 q_dbus_message_iter_recurse(&iterator, &d->iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_recurse(&iterator, &d->iterator);
-
395 q_dbus_message_iter_next(&iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
396 return d;
executed: return d;
Execution Count:147
147
397} -
398 -
399inline QDBusDemarshaller *QDBusDemarshaller::endStructure() -
400{ -
401 return endCommon();
executed: return endCommon();
Execution Count:32
32
402} -
403 -
404inline QDBusDemarshaller *QDBusDemarshaller::endArray() -
405{ -
406 return endCommon();
executed: return endCommon();
Execution Count:31
31
407} -
408 -
409inline QDBusDemarshaller *QDBusDemarshaller::endMap() -
410{ -
411 return endCommon();
executed: return endCommon();
Execution Count:20
20
412} -
413 -
414inline QDBusDemarshaller *QDBusDemarshaller::endMapEntry() -
415{ -
416 return endCommon();
executed: return endCommon();
Execution Count:64
64
417} -
418 -
419QDBusDemarshaller *QDBusDemarshaller::endCommon() -
420{ -
421 QDBusDemarshaller *retval = parent;
executed (the execution status of this line is deduced): QDBusDemarshaller *retval = parent;
-
422 delete this;
executed (the execution status of this line is deduced): delete this;
-
423 return retval;
executed: return retval;
Execution Count:147
147
424} -
425 -
426QDBusArgument QDBusDemarshaller::duplicate() -
427{ -
428 QDBusDemarshaller *d = new QDBusDemarshaller(capabilities);
executed (the execution status of this line is deduced): QDBusDemarshaller *d = new QDBusDemarshaller(capabilities);
-
429 d->iterator = iterator;
executed (the execution status of this line is deduced): d->iterator = iterator;
-
430 d->message = q_dbus_message_ref(message);
executed (the execution status of this line is deduced): d->message = q_dbus_message_ref(message);
-
431 -
432 q_dbus_message_iter_next(&iterator);
executed (the execution status of this line is deduced): q_dbus_message_iter_next(&iterator);
-
433 return QDBusArgumentPrivate::create(d);
executed: return QDBusArgumentPrivate::create(d);
Execution Count:77
77
434} -
435 -
436QT_END_NAMESPACE -
437 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial