DBusMessageIter iter;
DBusMessageIter array;
char *obj;
+ int type;
/* Includes property is optional */
if (!g_dbus_proxy_get_property(proxy, "Includes", &iter))
dbus_message_iter_recurse(&iter, &array);
- do {
- if (dbus_message_iter_get_arg_type(&array) !=
- DBUS_TYPE_OBJECT_PATH)
+ while ((type = dbus_message_iter_get_arg_type(&array))
+ != DBUS_TYPE_INVALID) {
+ if (type != DBUS_TYPE_OBJECT_PATH)
return false;
dbus_message_iter_get_basic(&array, &obj);
if (!queue_push_tail(service->includes, obj)) {
error("Failed to add Includes path in queue\n");
return false;
-
}
incr_attr_count(service, 1);
- } while (dbus_message_iter_next(&array));
+
+ dbus_message_iter_next(&array);
+ }
return true;
}