[PATCH weston] Clients: Fix memleak issues in various clients of weston

Jason Ekstrand jason at jlekstrand.net
Tue Jun 24 10:25:25 PDT 2014


Sorry it got lost.  I just pushed it.
-- Jason Ekstrand


On Mon, Jun 23, 2014 at 2:00 AM, Vivek Ellur <vivek.ellur at samsung.com>
wrote:

> Hi All,
>
> I had submitted this patch last month. It was reviewed but still not
> merged.
> I also checked the patch with the latest code, its working fine. Do I need
> to make any further changes?
>
> Regards,
> Vivek Ellur
>
> > -----Original Message-----
> > From: wayland-devel [mailto:wayland-devel-
> > bounces at lists.freedesktop.org] On Behalf Of Pekka Paalanen
> > Sent: Friday, May 16, 2014 11:48 AM
> > To: vivek
> > Cc: wayland-devel at lists.freedesktop.org
> > Subject: Re: [PATCH weston] Clients: Fix memleak issues in various
> clients
> of
> > weston
> >
> > On Thu, 15 May 2014 18:58:16 +0530
> > vivek <vivek.ellur at samsung.com> wrote:
> >
> > > 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 at samsung.com>
> > > ---
> > >  clients/cliptest.c    |   13 ++++++++++---
> > >  clients/dnd.c         |   11 +++++++++++
> > >  clients/editor.c      |    3 +++
> > >  clients/flower.c      |    4 ++++
> > >  clients/fullscreen.c  |    4 ++++
> > >  clients/gears.c       |   14 +++++++++++++-
> > >  clients/image.c       |    2 ++
> > >  clients/scaler.c      |    3 +++
> > >  clients/smoke.c       |    4 ++++
> > >  clients/stacking.c    |    3 +++
> > >  clients/transformed.c |    3 +++
> > >  11 files changed, 60 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/clients/cliptest.c b/clients/cliptest.c index
> > > 3cee343..a1928f4 100644
> > > --- a/clients/cliptest.c
> > > +++ b/clients/cliptest.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/dnd.c b/clients/dnd.c index a463d6f..620cfff
> > > 100644
> > > --- a/clients/dnd.c
> > > +++ b/clients/dnd.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/editor.c b/clients/editor.c index
> > > f3f6141..08d1203 100644
> > > --- a/clients/editor.c
> > > +++ b/clients/editor.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/flower.c b/clients/flower.c index
> > > 8769445..624525c 100644
> > > --- a/clients/flower.c
> > > +++ b/clients/flower.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/fullscreen.c b/clients/fullscreen.c index
> > > 28efb15..5c5dd2b 100644
> > > --- a/clients/fullscreen.c
> > > +++ b/clients/fullscreen.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/gears.c b/clients/gears.c index 93a86b4..95f0bb2
> > > 100644
> > > --- a/clients/gears.c
> > > +++ b/clients/gears.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/image.c b/clients/image.c index 054979d..112b93d
> > > 100644
> > > --- a/clients/image.c
> > > +++ b/clients/image.c
> > > @@ -424,5 +424,7 @@ main(int argc, char *argv[])
> > >     if (image_counter > 0)
> > >             display_run(d);
> > >
> > > +   display_destroy(d);
> > > +
> > >     return 0;
> > >  }
> > > diff --git a/clients/scaler.c b/clients/scaler.c index
> > > f94e714..3939022 100644
> > > --- a/clients/scaler.c
> > > +++ b/clients/scaler.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/smoke.c b/clients/smoke.c index 5d976af..65b6e03
> > > 100644
> > > --- a/clients/smoke.c
> > > +++ b/clients/smoke.c
> > > @@ -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;
> > >  }
> > > diff --git a/clients/stacking.c b/clients/stacking.c index
> > > f51a476..5aaf469 100644
> > > --- a/clients/stacking.c
> > > +++ b/clients/stacking.c
> > > @@ -304,5 +304,8 @@ main(int argc, char *argv[])
> > >
> > >     display_run(stacking.display);
> > >
> > > +   window_destroy(stacking.root_window);
> > > +   display_destroy(stacking.display);
> > > +
> > >     return 0;
> > >  }
> > > diff --git a/clients/transformed.c b/clients/transformed.c index
> > > 4b1cb05..880a0a9 100644
> > > --- a/clients/transformed.c
> > > +++ b/clients/transformed.c
> > > @@ -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;
> > >  }
> >
> > Yeah, looks fine to me.
> >
> >
> > Thanks,
> > pq
> > _______________________________________________
> > wayland-devel mailing list
> > wayland-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140624/d5361a78/attachment-0001.html>


More information about the wayland-devel mailing list