[PATCH weston] comp-wayland: use safe foreach when destroying outputs

Jason Ekstrand jason at jlekstrand.net
Fri May 23 05:25:53 PDT 2014


To be honest, I don't think I looked at the other backends too much when
writing the wayland backend.  I guess cleaning up myself seemed like a good
idea at the time.  I don't think it really matters; having it in shutdown
just lets backends be lazy.
--Jason


On Fri, May 23, 2014 at 2:03 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:

> On Wed, 21 May 2014 09:20:02 -0700
> "U. Artie Eoff" <ullysses.a.eoff at intel.com> wrote:
>
> > wl_list_for_each dereference's output to increment the
> > next iteration of the loop.  However, output is free'd
> > inside the loop resulting in a dereference to free'd
> > memory.
> >
> > Use wl_list_for_each_safe instead, which is designed to
> > handle this kind of pattern.
> >
> > Signed-off-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
> > ---
> >  src/compositor-wayland.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
> > index a08b71a..76e5396 100644
> > --- a/src/compositor-wayland.c
> > +++ b/src/compositor-wayland.c
> > @@ -1997,9 +1997,9 @@ err_free:
> >  static void
> >  wayland_compositor_destroy(struct wayland_compositor *c)
> >  {
> > -     struct weston_output *output;
> > +     struct weston_output *output, *next;
> >
> > -     wl_list_for_each(output, &c->base.output_list, link)
> > +     wl_list_for_each_safe(output, next, &c->base.output_list, link)
> >               wayland_output_destroy(output);
> >
> >       c->base.renderer->destroy(&c->base);
>
> The DRM, x11 and rpi backends do not do this at all. Instead they rely
> on weston_compositor_shutdown() to destroy all outputs and the renderer.
>
> Is there a reason why the wayland backend is different?
>
>
> Thanks,
> pq
> _______________________________________________
> 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/20140523/52db2d96/attachment.html>


More information about the wayland-devel mailing list