Clients: Fix memleak issues in various clients of weston
authorvivek <vivek.ellur@samsung.com>
Thu, 15 May 2014 13:28:16 +0000 (18:58 +0530)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 24 Jun 2014 17:22:43 +0000 (10:22 -0700)
In many clients of weston, Display was not being destroyed so added it.
Also destroy windows, widgets which were not being destroyed.

Signed-off-by: vivek <vivek.ellur@samsung.com>
Reviewed-by: Pekka Paalanen <ppaalanen@gmail.com>
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
clients/cliptest.c
clients/dnd.c
clients/editor.c
clients/flower.c
clients/fullscreen.c
clients/gears.c
clients/image.c
clients/scaler.c
clients/smoke.c
clients/stacking.c
clients/transformed.c

index 3cee343..a1928f4 100644 (file)
@@ -879,6 +879,14 @@ benchmark(void)
        return 0;
 }
 
+static void
+cliptest_destroy(struct cliptest *cliptest)
+{
+       widget_destroy(cliptest->widget);
+       window_destroy(cliptest->window);
+       free(cliptest);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -897,9 +905,8 @@ main(int argc, char *argv[])
        cliptest = cliptest_create(d);
        display_run(d);
 
-       widget_destroy(cliptest->widget);
-       window_destroy(cliptest->window);
-       free(cliptest);
+       cliptest_destroy(cliptest);
+       display_destroy(d);
 
        return 0;
 }
index a463d6f..620cfff 100644 (file)
@@ -639,6 +639,14 @@ dnd_create(struct display *display)
        return dnd;
 }
 
+static void
+dnd_destroy(struct dnd *dnd)
+{
+       widget_destroy(dnd->widget);
+       window_destroy(dnd->window);
+       free(dnd);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -660,5 +668,8 @@ main(int argc, char *argv[])
 
        display_run(d);
 
+       dnd_destroy(dnd);
+       display_destroy(d);
+
        return 0;
 }
index f3f6141..08d1203 100644 (file)
@@ -1382,6 +1382,9 @@ main(int argc, char *argv[])
 
        text_entry_destroy(editor.entry);
        text_entry_destroy(editor.editor);
+       widget_destroy(editor.widget);
+       window_destroy(editor.window);
+       display_destroy(editor.display);
 
        return 0;
 }
index 8769445..624525c 100644 (file)
@@ -195,5 +195,9 @@ int main(int argc, char *argv[])
 
        display_run(d);
 
+       widget_destroy(flower.widget);
+       window_destroy(flower.window);
+       display_destroy(d);
+
        return 0;
 }
index 28efb15..5c5dd2b 100644 (file)
@@ -562,5 +562,9 @@ int main(int argc, char *argv[])
 
        display_run(d);
 
+       widget_destroy(fullscreen.widget);
+       window_destroy(fullscreen.window);
+       display_destroy(d);
+
        return 0;
 }
index 93a86b4..95f0bb2 100644 (file)
@@ -469,17 +469,29 @@ gears_create(struct display *display)
        return gears;
 }
 
+static void
+gears_destroy(struct gears *gears)
+{
+       widget_destroy(gears->widget);
+       window_destroy(gears->window);
+       free(gears);
+}
+
 int main(int argc, char *argv[])
 {
        struct display *d;
+       struct gears *gears;
 
        d = display_create(&argc, argv);
        if (d == NULL) {
                fprintf(stderr, "failed to create display: %m\n");
                return -1;
        }
-       gears_create(d);
+       gears = gears_create(d);
        display_run(d);
 
+       gears_destroy(gears);
+       display_destroy(d);
+
        return 0;
 }
index 054979d..112b93d 100644 (file)
@@ -424,5 +424,7 @@ main(int argc, char *argv[])
        if (image_counter > 0)
                display_run(d);
 
+       display_destroy(d);
+
        return 0;
 }
index f94e714..3939022 100644 (file)
@@ -321,6 +321,9 @@ main(int argc, char *argv[])
 
        display_run(d);
 
+       widget_destroy(box.widget);
        window_destroy(box.window);
+       display_destroy(d);
+
        return 0;
 }
index 5d976af..65b6e03 100644 (file)
@@ -329,5 +329,9 @@ int main(int argc, char *argv[])
 
        display_run(d);
 
+       widget_destroy(smoke.widget);
+       window_destroy(smoke.window);
+       display_destroy(d);
+
        return 0;
 }
index abeded8..ea6101d 100644 (file)
@@ -304,5 +304,8 @@ main(int argc, char *argv[])
 
        display_run(stacking.display);
 
+       window_destroy(stacking.root_window);
+       display_destroy(stacking.display);
+
        return 0;
 }
index 4b1cb05..880a0a9 100644 (file)
@@ -290,6 +290,9 @@ int main(int argc, char *argv[])
                               transformed.width, transformed.height);
 
        display_run(d);
+       widget_destroy(transformed.widget);
+       window_destroy(transformed.window);
+       display_destroy(d);
 
        return 0;
 }