[PATCH weston] shell: End grab if the grabbed shell surface has been destroyed

Eoff, Ullysses A ullysses.a.eoff at intel.com
Mon May 20 08:58:59 PDT 2013


Nonetheless, this is still a reasonable patch that can be applied to solve
part of the problem...  that is, it prevents Weston from crashing.

> -----Original Message-----
> From: wayland-devel-bounces+ullysses.a.eoff=intel.com at lists.freedesktop.org
> [mailto:wayland-devel-
> bounces+ullysses.a.eoff=intel.com at lists.freedesktop.org] On Behalf Of Eoff,
> Ullysses A
> Sent: Monday, May 20, 2013 5:59 AM
> To: Bradford, Robert; wayland-devel at lists.freedesktop.org
> Subject: RE: [PATCH weston] shell: End grab if the grabbed shell surface has been
> destroyed
> 
> Rob, I tried this same local modification on Friday... it seems to fix
> Weston from segfaulting. However, I have another test case that
> triggered this problem, too; only it crashes on the client-side as well.
> The client-side crash did not disappear with this Weston modification,
> which indicates there may be some deeper, underlying issue.
> 
> I'll point you to the test case soon, real soon ;-)
> 
> ----
> U. Artie
> 
> 
> > -----Original Message-----
> > From: Rob Bradford [mailto:robert.bradford at intel.com]
> > Sent: Monday, May 20, 2013 4:14 AM
> > To: wayland-devel at lists.freedesktop.org; Eoff, Ullysses A
> > Subject: Re: [PATCH weston] shell: End grab if the grabbed shell surface has
> been
> > destroyed
> >
> > I should add that although I think that this patch fixes the bug, i've
> > written it by inspection of the code & backtraces only as I was unable
> > to reproduce the issue. Artie, perhaps you could try this and give me
> > a Tested-by if it resolves the problem.
> >
> > Cheers,
> >
> > Rob
> >
> > On 20 May 2013 12:09, Rob Bradford <robert.bradford at intel.com> wrote:
> > > From: Rob Bradford <rob at linux.intel.com>
> > >
> > > The shell_grab_start function sets up a destroy notification on the
> > > shell surface such that when the shell surface is destroyed the pointer
> > > on the grab to the shell surface is set to NULL.
> > >
> > > We must therefore check whether the shell surface is NULL and end the
> > > grab if it is.
> > >
> > > https://bugs.freedesktop.org/show_bug.cgi?id=64689
> > > ---
> > >  src/shell.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/src/shell.c b/src/shell.c
> > > index f5d5bff..7261570 100644
> > > --- a/src/shell.c
> > > +++ b/src/shell.c
> > > @@ -1296,7 +1296,7 @@ busy_cursor_grab_focus(struct
> weston_pointer_grab
> > *base)
> > >                                                  pointer->x, pointer->y,
> > >                                                  &sx, &sy);
> > >
> > > -       if (grab->shsurf->surface != surface) {
> > > +       if (!grab->shsurf || grab->shsurf->surface != surface) {
> > >                 shell_grab_end(grab);
> > >                 free(grab);
> > >         }
> > > --
> > > 1.8.1.4
> > >
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list