[PATCH weston v2] Properly free drm configured mode variables.

Kristian Høgsberg hoegsberg at gmail.com
Tue Jul 31 21:41:53 PDT 2012


On Tue, Jul 31, 2012 at 10:29:56PM -0600, Scott Moreau wrote:

Yup, looks right now, applied.

Kristian

> ---
> 
> We still have to free output_name and output_mode if the malloc call fails.
> 
>  src/compositor-drm.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/src/compositor-drm.c b/src/compositor-drm.c
> index 2075a99..508c0ec 100644
> --- a/src/compositor-drm.c
> +++ b/src/compositor-drm.c
> @@ -1777,6 +1777,14 @@ drm_restore(struct weston_compositor *ec)
>  }
>  
>  static void
> +drm_free_configured_output(struct drm_configured_output *output)
> +{
> +	free(output->name);
> +	free(output->mode);
> +	free(output);
> +}
> +
> +static void
>  drm_destroy(struct weston_compositor *ec)
>  {
>  	struct drm_compositor *d = (struct drm_compositor *) ec;
> @@ -1786,7 +1794,7 @@ drm_destroy(struct weston_compositor *ec)
>  	wl_list_for_each_safe(seat, next, &ec->seat_list, link)
>  		evdev_input_destroy(seat);
>  	wl_list_for_each_safe(o, n, &configured_output_list, link)
> -		free(o);
> +		drm_free_configured_output(o);
>  
>  	wl_event_source_remove(d->udev_drm_source);
>  	wl_event_source_remove(d->drm_source);
> @@ -2147,9 +2155,9 @@ output_section_done(void *data)
>  	if (output->config != OUTPUT_CONFIG_INVALID)
>  		wl_list_insert(&configured_output_list, &output->link);
>  	else {
> -		free(output);
>  		weston_log("Invalid mode \"%s\" for output %s\n",
>  						output_mode, output_name);
> +		drm_free_configured_output(output);
>  	}
>  }
>  
> -- 
> 1.7.11.2
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list