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

Reply via email to