[PATCH weston v2] Properly free drm configured mode variables.
Scott Moreau
oreaus at gmail.com
Tue Jul 31 21:29:56 PDT 2012
---
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
More information about the wayland-devel
mailing list