Enlightenment SVN wrote:
> Log:
> revert broken dbus return handling, readd stringshares
Please! Don't mess with code you don't understand!
Sebastian
>
> Author: discomfitor
> Date: 2010-05-07 09:48:41 -0700 (Fri, 07 May 2010)
> New Revision: 48670
>
> Modified:
> trunk/e_dbus/src/lib/hal/e_hal_device.c
> trunk/e_dbus/src/lib/hal/e_hal_manager.c
>
> Modified: trunk/e_dbus/src/lib/hal/e_hal_device.c
> ===================================================================
> --- trunk/e_dbus/src/lib/hal/e_hal_device.c 2010-05-07 15:49:06 UTC (rev
> 48669)
> +++ trunk/e_dbus/src/lib/hal/e_hal_device.c 2010-05-07 16:48:41 UTC (rev
> 48670)
> @@ -17,6 +17,7 @@
> E_Hal_Device_Get_Property_Return *ret = NULL;
> DBusMessageIter iter;
> int type;
> + char *tmp;
>
> ret = calloc(1, sizeof(E_Hal_Device_Get_Property_Return));
> if (!ret)
> @@ -30,7 +31,8 @@
> switch(type)
> {
> case DBUS_TYPE_STRING:
> - dbus_message_iter_get_basic(&iter, &(ret->val.s));
> + dbus_message_iter_get_basic(&iter, &tmp);
> + ret->val.s = eina_stringshare_add(tmp);
> break;
> case DBUS_TYPE_INT32:
> dbus_message_iter_get_basic(&iter, &(ret->val.i));
> @@ -52,6 +54,14 @@
> E_Hal_Device_Get_Property_Return *ret = data;
>
> if (!ret) return;
> + if (ret->type == E_HAL_PROPERTY_TYPE_STRLIST)
> + {
> + const char *s;
> + EINA_LIST_FREE(ret->val.strlist, s)
> + eina_stringshare_del(s);
> + }
> + else if (ret->type == E_HAL_PROPERTY_TYPE_STRING)
> + eina_stringshare_del(ret->val.s);
> free(ret);
> }
>
> @@ -75,6 +85,7 @@
> {
> E_Hal_Device_Get_All_Properties_Return *ret = NULL;
> DBusMessageIter iter, a_iter, s_iter, v_iter;
> + const char *tmp;
>
> /* a{sv} = array of string+variant */
> if (!dbus_message_has_signature(msg, "a{sv}"))
> @@ -107,7 +118,8 @@
> {
> case DBUS_TYPE_STRING:
> prop->type = E_HAL_PROPERTY_TYPE_STRING;
> - dbus_message_iter_get_basic(&v_iter, &(prop->val.s));
> + dbus_message_iter_get_basic(&v_iter, &tmp);
> + prop->val.s = eina_stringshare_add(tmp);
> break;
> case DBUS_TYPE_INT32:
> prop->type = E_HAL_PROPERTY_TYPE_INT;
> @@ -135,7 +147,8 @@
> {
> char *str;
> dbus_message_iter_get_basic(&list_iter, &str);
> - prop->val.strlist = eina_list_append(prop->val.strlist, str);
> + tmp = eina_stringshare_add(str);
> + prop->val.strlist = eina_list_append(prop->val.strlist, tmp);
> dbus_message_iter_next(&list_iter);
> }
> }
>
> Modified: trunk/e_dbus/src/lib/hal/e_hal_manager.c
> ===================================================================
> --- trunk/e_dbus/src/lib/hal/e_hal_manager.c 2010-05-07 15:49:06 UTC (rev
> 48669)
> +++ trunk/e_dbus/src/lib/hal/e_hal_manager.c 2010-05-07 16:48:41 UTC (rev
> 48670)
> @@ -34,7 +34,7 @@
>
> dbus_message_iter_get_basic(&sub, &dev);
> if (dev)
> - ret->strings = eina_list_append(ret->strings, dev);
> + ret->strings = eina_list_append(ret->strings,
> eina_stringshare_add(dev));
> dbus_message_iter_next(&sub);
> }
>
> @@ -45,9 +45,11 @@
> free_string_list(void *data)
> {
> E_Hal_String_List_Return *ret = data;
> + const char *x;
>
> if (!ret) return;
> - eina_list_free(ret->strings);
> + EINA_LIST_FREE(ret->strings, x)
> + eina_stringshare_del(x);
> free(ret);
> }
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> enlightenment-svn mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel