Enlightenment SVN <[email protected]> wrote: >Log: >Don't leak struct wl_registry > > Signed-off-by: Eduardo Lima (Etrunko) <[email protected]> > > > >Author: etrunko >Date: 2012-11-23 09:49:39 -0800 (Fri, 23 Nov 2012) >New Revision: 79565 >Trac: http://trac.enlightenment.org/e/changeset/79565 > >Modified: >trunk/expedite/src/bin/engine_wayland_egl.c >trunk/expedite/src/bin/engine_wayland_shm.c > >Modified: trunk/expedite/src/bin/engine_wayland_egl.c >=================================================================== >--- trunk/expedite/src/bin/engine_wayland_egl.c 2012-11-23 17:19:42 UTC >(rev 79564) >+++ trunk/expedite/src/bin/engine_wayland_egl.c 2012-11-23 17:49:39 UTC >(rev 79565) >@@ -8,10 +8,13 @@ > #include <wayland-client.h> > #include <wayland-egl.h> > >-/* Global struct */ >+/* >+ * Global struct >+ */ > struct _engine_wayland_egl_display > { > struct wl_display *display; >+ struct wl_registry *registry; > struct wl_compositor *compositor; > struct wl_surface *surface; > struct wl_shell *shell; >@@ -21,7 +24,7 @@ > static struct _engine_wayland_egl_display wl; > > /* >- * Function prototypes >+ * Function Prototypes > */ > /* Registry handler */ >static void _registry_handle_global(void *data, struct wl_registry >*registry, unsigned int id, const char *interface, unsigned int >version __UNUSED__); >@@ -37,7 +40,6 @@ > Eina_Bool >engine_wayland_egl_args(const char *engine __UNUSED__, int width >__UNUSED__, int height __UNUSED__) > { >- struct wl_registry *registry; > Evas_Engine_Info_Wayland_Egl *einfo; > >evas_output_method_set(evas, evas_render_method_lookup("wayland_egl")); >@@ -49,8 +51,8 @@ > } > > wl.display = wl_display_connect(NULL); >- registry = wl_display_get_registry(wl.display); >- wl_registry_add_listener(registry, &_registry_listener, NULL); >+ wl.registry = wl_display_get_registry(wl.display); >+ wl_registry_add_listener(wl.registry, &_registry_listener, NULL); > wl_display_roundtrip(wl.display); > > assert(wl.compositor != NULL); >@@ -83,6 +85,7 @@ > wl_surface_destroy(wl.surface); > wl_shell_destroy(wl.shell); > wl_compositor_destroy(wl.compositor); >+ wl_registry_destroy(wl.registry); > wl_display_flush(wl.display); > wl_display_disconnect(wl.display); > } > >Modified: trunk/expedite/src/bin/engine_wayland_shm.c >=================================================================== >--- trunk/expedite/src/bin/engine_wayland_shm.c 2012-11-23 17:19:42 UTC >(rev 79564) >+++ trunk/expedite/src/bin/engine_wayland_shm.c 2012-11-23 17:49:39 UTC >(rev 79565) >@@ -15,6 +15,7 @@ > struct _engine_wayland_shm_display > { > struct wl_display *display; >+ struct wl_registry *registry; > struct wl_compositor *compositor; > struct wl_surface *surface; > struct wl_callback *frame_callback; >@@ -56,7 +57,6 @@ > Eina_Bool >engine_wayland_shm_args(const char *engine __UNUSED__, int width, int >height) > { >- struct wl_registry *registry; > Evas_Engine_Info_Wayland_Shm *einfo; > >evas_output_method_set(evas, evas_render_method_lookup("wayland_shm")); >@@ -68,8 +68,8 @@ > } > > wl.display = wl_display_connect(NULL); >- registry = wl_display_get_registry(wl.display); >- wl_registry_add_listener(registry, &_registry_listener, NULL); >+ wl.registry = wl_display_get_registry(wl.display); >+ wl_registry_add_listener(wl.registry, &_registry_listener, NULL); > wl_display_roundtrip(wl.display); > > assert(wl.compositor != NULL); >@@ -120,6 +120,7 @@ > wl_shm_destroy(wl.shm); > wl_shell_destroy(wl.shell); > wl_compositor_destroy(wl.compositor); >+ wl_registry_destroy(wl.registry); > wl_display_flush(wl.display); > wl_display_disconnect(wl.display); > } >@@ -134,10 +135,10 @@ >wl.compositor = wl_registry_bind(registry, id, >&wl_compositor_interface, 1); > else if (!strcmp(interface, "wl_shell")) > wl.shell = wl_registry_bind(registry, id, &wl_shell_interface, 1); >+ else if (!strcmp(interface, "wl_seat")) >+ engine_wayland_register_seat(registry, id); > else if (!strcmp(interface, "wl_shm")) > wl.shm = wl_registry_bind(registry, id, &wl_shm_interface, 1); >- else if (!strcmp(interface, "wl_seat")) >- engine_wayland_register_seat(registry, id); > } > > static void > > >------------------------------------------------------------------------------ >Monitor your physical, virtual and cloud infrastructure from a single >web console. Get in-depth insight into apps, servers, databases, >vmware, >SAP, cloud infrastructure, etc. Download 30-day Free Trial. >Pricing starts from $795 for 25 servers or applications! >http://p.sf.net/sfu/zoho_dev2dev_nov >_______________________________________________ >enlightenment-svn mailing list >[email protected] >https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
Nice one !! Good catch ;) dh -- Sent from my Samsung phone. ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
