summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2016-10-11 11:30:13 -0400
committerChris Michael <cp.michael@samsung.com>2016-10-11 11:30:49 -0400
commitaba152a8be0f87387b123e9388472d4367ffb713 (patch)
tree4c7edfe2601f55e37e5c4195f602c0ada124bc28
parentfb112b8fab68f8926604650539b5621ef3c9fbe8 (diff)
downloadefl-aba152a8be0f87387b123e9388472d4367ffb713.tar.gz
ecore-drm2: Free Output modes on destroy
When we destroy outputs, we should be freeing the Output's Modes also as that was previously allocated memory. Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_outputs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index 84a6076418..fe3db163e7 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -885,6 +885,15 @@ _cb_output_event(const char *device EINA_UNUSED, Eeze_Udev_Event event EINA_UNUS
static void
_output_destroy(Ecore_Drm2_Device *dev, Ecore_Drm2_Output *output)
{
+ Ecore_Drm2_Output_Mode *mode;
+
+ EINA_LIST_FREE(output->modes, mode)
+ {
+ if (mode->id)
+ drmModeDestroyPropertyBlob(output->fd, mode->id);
+ free(mode);
+ }
+
dev->alloc.crtc &= ~(1 << output->crtc_id);
dev->alloc.conn &= ~(1 << output->conn_id);