Le 8 déc. 2015 23:22, "Carsten Haitzler" <ras...@rasterman.com> a écrit :
>
> raster pushed a commit to branch master.
>
>
http://git.enlightenment.org/core/enlightenment.git/commit/?id=a885c8c0402d142efce67fac8f57b8e019e57022
>
> commit a885c8c0402d142efce67fac8f57b8e019e57022
> Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> Date:   Wed Dec 9 16:21:31 2015 +0900
>
>     e - fix using an invalid icon theme - fall back to hicolor if not
exists
>
>     this should fix D2036 on the e side by checking validity of an icon
>     theme once efreet has finished scanning for stuff and if its invalid,
>     going back to hicolor.
>
>     @fix
> ---
>  src/bin/e_config.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>
> diff --git a/src/bin/e_config.c b/src/bin/e_config.c
> index 00d4207..7e30bc0 100644
> --- a/src/bin/e_config.c
> +++ b/src/bin/e_config.c
> @@ -56,6 +56,7 @@ E_API int E_EVENT_CONFIG_MODE_CHANGED = 0;
>  E_API int E_EVENT_CONFIG_LOADED = 0;
>
>  static E_Dialog *_e_config_error_dialog = NULL;
> +static Eina_List *handlers = NULL;
>
>  typedef struct _E_Color_Class
>  {
> @@ -65,6 +66,24 @@ typedef struct _E_Color_Class
>     int           r3, g3, b3, a3;
>  } E_Color_Class;
>
> +static Eina_Bool
> +_e_config_cb_efreet_cache_update(void *data EINA_UNUSED, int type
EINA_UNUSED, void *ev EINA_UNUSED)
> +{
> +   if (e_config)
> +     {
> +        if (e_config->icon_theme)
> +          {
> +             if (!efreet_icon_theme_find(e_config->icon_theme))
> +               {
> +                  e_config->icon_theme = eina_stringshare_add("hicolor");

This line looks like a memory leak to me. Shouldn't it be an
eina_stringshare_replace ?

> +                  e_config_save_queue();
> +               }
> +          }
> +     }
> +   return ECORE_CALLBACK_RENEW;
> +}
> +
> +
>  static void
>  _e_config_error_dialog_cb_delete(void *dia)
>  {
> @@ -933,12 +952,21 @@ e_config_init(void)
>     e_config_load();
>
>     e_config_save_queue();
> +
> +   E_LIST_HANDLER_APPEND(handlers, EFREET_EVENT_DESKTOP_CACHE_UPDATE,
> +                         _e_config_cb_efreet_cache_update, NULL);
> +   E_LIST_HANDLER_APPEND(handlers, EFREET_EVENT_ICON_CACHE_UPDATE,
> +                         _e_config_cb_efreet_cache_update, NULL);
> +   E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIG_ICON_THEME,
> +                         _e_config_cb_efreet_cache_update, NULL);
> +
>     return 1;
>  }
>
>  EINTERN int
>  e_config_shutdown(void)
>  {
> +   E_FREE_LIST(handlers, ecore_event_handler_del);
>     eina_stringshare_del(_e_config_profile);
>     E_CONFIG_DD_FREE(_e_config_binding_edd);
>     E_CONFIG_DD_FREE(_e_config_bindings_mouse_edd);
>
> --
>
>
>
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to