From c50645c775406142d7474420b7eb7f146478ae7a Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Tue, 31 Jul 2012 22:29:56 -0600 Subject: [PATCH] Properly free drm configured mode variables. --- 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 44458c02..86165277 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -1775,6 +1775,14 @@ drm_restore(struct weston_compositor *ec) tty_reset(d->tty); } +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) { @@ -1785,7 +1793,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); @@ -2146,9 +2154,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); } }