edbus: avoid using dbus_signature_iter_get_signature when not needed

SVN revision: 81174
This commit is contained in:
Lucas De Marchi 2012-12-17 18:24:54 +00:00
parent 8af6b6620f
commit ada326a184
1 changed files with 8 additions and 7 deletions

View File

@ -421,7 +421,7 @@ _edbus_message_arguments_vset(EDBus_Message *msg, const char *signature, va_list
{
DBusSignatureIter signature_iter;
EDBus_Message_Iter *iter;
char *type;
int type;
Eina_Bool r = EINA_TRUE;
if (!signature[0]) return EINA_TRUE;
@ -432,21 +432,22 @@ _edbus_message_arguments_vset(EDBus_Message *msg, const char *signature, va_list
EINA_SAFETY_ON_FALSE_RETURN_VAL(iter->writable, EINA_FALSE);
dbus_signature_iter_init(&signature_iter, signature);
while ((type = dbus_signature_iter_get_signature(&signature_iter)))
while ((type = dbus_signature_iter_get_current_type(&signature_iter)))
{
if (dbus_type_is_basic(type[0]))
r = append_basic(type[0], MAKE_PTR_FROM_VA_LIST(ap),
if (dbus_type_is_basic(type))
r = append_basic(type, MAKE_PTR_FROM_VA_LIST(ap),
&iter->dbus_iterator);
else
{
ERR("sig = %s | edbus_message_arguments_set() and \
edbus_message_arguments_vset() only support basic types, \
to complex types use edbus_message_iter_* functions", signature);
to complex types use edbus_message_iter_* functions",
signature);
r = EINA_FALSE;
}
dbus_free(type);
if (!r || !dbus_signature_iter_next(&signature_iter)) break;
if (!r || !dbus_signature_iter_next(&signature_iter))
break;
}
return r;