huchi pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f796679af613ed1fb07b43a313c382f67f6cdcdc

commit f796679af613ed1fb07b43a313c382f67f6cdcdc
Author: Wonguk Jeong <[email protected]>
Date:   Sun Aug 10 22:55:38 2014 +0200

    eldbus: do not ignore numeric "0" in property_set
    
    "0" value was considered to be error even if signature was numeric
    
    @fix
---
 src/lib/eldbus/eldbus_proxy.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/lib/eldbus/eldbus_proxy.c b/src/lib/eldbus/eldbus_proxy.c
index bcb8d2e..785caec 100644
--- a/src/lib/eldbus/eldbus_proxy.c
+++ b/src/lib/eldbus/eldbus_proxy.c
@@ -652,6 +652,20 @@ eldbus_proxy_property_get(Eldbus_Proxy *proxy, const char 
*name, Eldbus_Message_
                            "ss", proxy->interface, name);
 }
 
+static inline Eina_Bool
+_type_is_number(char sig)
+{
+   switch (sig)
+     {
+      case 'y': case 'b': case 'n': case 'q': case 'i':
+      case 'u': case 'x': case 't': case 'd': case 'h':
+        return EINA_TRUE;
+      default:
+        break;
+     }
+   return EINA_FALSE;
+}
+
 EAPI Eldbus_Pending *
 eldbus_proxy_property_set(Eldbus_Proxy *proxy, const char *name, const char 
*sig, const void *value, Eldbus_Message_Cb cb, const void *data)
 {
@@ -662,7 +676,7 @@ eldbus_proxy_property_set(Eldbus_Proxy *proxy, const char 
*name, const char *sig
    EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(sig, NULL);
    EINA_SAFETY_ON_FALSE_RETURN_VAL(dbus_signature_validate_single(sig, NULL), 
NULL);
-   EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
+   EINA_SAFETY_ON_FALSE_RETURN_VAL((_type_is_number(sig[0]) || value), NULL);
 
    msg = eldbus_proxy_method_call_new(proxy->obj->properties, "Set");
    iter = eldbus_message_iter_get(msg);

-- 


Reply via email to