On Wed, 19 Dec 2012 09:37:26 -0800
"Enlightenment SVN" <no-re...@enlightenment.org> wrote:

> Log:
> shotgun: Unref edbus object and proxies
>   
>   Patch by: Jos?\195?\169 Roberto de Souza  <zehortig...@profusion.mobi>
>   
>   
> 
> Author:       lucas
> Date:         2012-12-19 09:37:25 -0800 (Wed, 19 Dec 2012)
> New Revision: 81392
> Trac:         http://trac.enlightenment.org/e/changeset/81392
> 
> Modified:
>   trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.c 
> trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.h 
> 
> Modified: trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.c
> ===================================================================
> --- trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.c    2012-12-19 
> 17:35:00 UTC (rev 81391)
> +++ trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.c    2012-12-19 
> 17:37:25 UTC (rev 81392)
> @@ -624,9 +624,7 @@
>  e_modapi_init(E_Module *m)
>  {
>     char buf[4096];
> -   EDBus_Connection *conn;
>     EDBus_Object *obj;
> -   EDBus_Proxy *proxy;
>     E_Action *act;
>  
>     snprintf(buf, sizeof(buf), "%s/locale", m->dir);
> @@ -641,24 +639,24 @@
>     e_configure_registry_item_add("extensions/sawed-off_shotgun", 110, 
> D_("Shotgun: Sawed-Off"),
>                                   NULL, buf, e_int_config_sos);
>  
> -   edbus_init();
> -   conn = edbus_connection_get(EDBUS_CONNECTION_TYPE_SESSION);
> -   edbus_name_owner_changed_callback_add(conn, SHOTGUN_DBUS_METHOD_BASE, 
> _name_owner_change, NULL, EINA_TRUE);
> -   obj = edbus_object_get(conn, SHOTGUN_DBUS_INTERFACE, SHOTGUN_DBUS_PATH);
> -   proxy = edbus_proxy_get(obj, SHOTGUN_DBUS_METHOD_BASE ".core");
> -
> -   edbus_proxy_signal_handler_add(proxy, "link", _link_cb, NULL);
> -   edbus_proxy_signal_handler_add(proxy, "link_self", _link_self_cb, NULL);
> -   edbus_proxy_signal_handler_add(proxy, "link_del", _link_del_cb, NULL);
> -   edbus_proxy_signal_handler_add(proxy, "new_msg", _new_msg_cb, NULL);
> -   edbus_proxy_signal_handler_add(proxy, "status", _status_cb, NULL);
> -   edbus_proxy_signal_handler_add(proxy, "connected", _connected_cb, NULL);
> -
>     mod = E_NEW(Mod, 1);
>     mod->module = m;
> -   mod->conn = conn;
>     mod->edj = eina_stringshare_add(buf);
>  
> +   edbus_init();
> +   mod->conn = edbus_connection_get(EDBUS_CONNECTION_TYPE_SESSION);
> +   edbus_name_owner_changed_callback_add(mod->conn, SHOTGUN_DBUS_METHOD_BASE,
> +                                      _name_owner_change, NULL, EINA_TRUE);
> +   obj = edbus_object_get(mod->conn, SHOTGUN_DBUS_INTERFACE, 
> SHOTGUN_DBUS_PATH);
> +   mod->proxy_core = edbus_proxy_get(obj, SHOTGUN_DBUS_METHOD_BASE ".core");
> +
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "link", _link_cb, NULL);
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "link_self", 
> _link_self_cb, NULL);
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "link_del", _link_del_cb, 
> NULL);
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "new_msg", _new_msg_cb, 
> NULL);
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "status", _status_cb, 
> NULL);
> +   edbus_proxy_signal_handler_add(mod->proxy_core, "connected", 
> _connected_cb, NULL);
> +
>     mod->proxy_link = edbus_proxy_get(obj, SHOTGUN_DBUS_METHOD_BASE ".link");
>     mod->proxy_contact = edbus_proxy_get(obj, SHOTGUN_DBUS_METHOD_BASE 
> ".contact");
>     mod->proxy_list = edbus_proxy_get(obj, SHOTGUN_DBUS_METHOD_BASE ".list");
> @@ -706,6 +704,7 @@
>  EAPI int
>  e_modapi_shutdown(E_Module *m EINA_UNUSED)
>  {
> +   EDBus_Object *obj;
>     e_configure_registry_item_del("extensions/sawed-off_shotgun");
>  
>     e_configure_registry_category_del("extensions");
> @@ -720,6 +719,14 @@
>     e_config_domain_save("module.sawed-off_shotgun", conf_edd, sos_config);
>     _e_mod_sos_config_free();
>     E_CONFIG_DD_FREE(conf_edd);
> +   obj = edbus_proxy_object_get(mod->proxy_core);
> +   edbus_proxy_unref(mod->proxy_core);
> +   edbus_proxy_unref(mod->proxy_link);
> +   edbus_proxy_unref(mod->proxy_list);
> +   edbus_proxy_unref(mod->proxy_contact);
> +   edbus_object_unref(obj);
> +   edbus_name_owner_changed_callback_del(mod->conn, SHOTGUN_DBUS_METHOD_BASE,
> +                                         _name_owner_change, NULL);
>     edbus_connection_unref(mod->conn);
>     E_FREE_LIST(mod->images, eina_stringshare_del);
>     E_FREE_LIST(mod->actions, e_action_del);
> 
> Modified: trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.h
> ===================================================================
> --- trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.h    2012-12-19 
> 17:35:00 UTC (rev 81391)
> +++ trunk/PROTO/shotgun/src/modules/sawed-off/e_mod_main.h    2012-12-19 
> 17:37:25 UTC (rev 81392)
> @@ -36,6 +36,7 @@
>     Eet_File *ef;
>     const char *edj;
>     EDBus_Connection *conn;
> +   EDBus_Proxy *proxy_core;
>     EDBus_Proxy *proxy_link;
>     EDBus_Proxy *proxy_contact;
>     EDBus_Proxy *proxy_list;
> 

thanks!

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to