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