Hi Could someone do a r-b of this patch?
Cheers, Olivier ----- Original Message ----- > Hi, > > the patch works for me > > Tested-by: Marek Chalupa <[email protected]> > > Cheers, > Marek > > On 11/23/2015 08:51 AM, Olivier Fourdan wrote: > > Otherwise the server may try to draw onto the root window when closing > > down, but when running rootless the root window has no storage thus > > causing a memory corruption. > > > > Thanks to Adam Jackson <[email protected]> for helping tracking this down! > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93045 > > Signed-off-by: Olivier Fourdan <[email protected]> > > --- > > v2: SetRootClip() only if not rootless in update_screen_size() > > v3: fix indentation > > > > hw/xwayland/xwayland-glamor.c | 4 +++- > > hw/xwayland/xwayland-output.c | 6 ++++-- > > hw/xwayland/xwayland-shm.c | 4 +++- > > 3 files changed, 10 insertions(+), 4 deletions(-) > > > > diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c > > index ebaf05a..c357217 100644 > > --- a/hw/xwayland/xwayland-glamor.c > > +++ b/hw/xwayland/xwayland-glamor.c > > @@ -233,9 +233,11 @@ xwl_glamor_create_screen_resources(ScreenPtr screen) > > if (!ret) > > return ret; > > > > - if (xwl_screen->rootless) > > + if (xwl_screen->rootless) { > > screen->devPrivate = > > fbCreatePixmap(screen, 0, 0, screen->rootDepth, 0); > > + SetRootClip(screen, FALSE); > > + } > > else { > > screen->devPrivate = > > xwl_glamor_create_pixmap(screen, screen->width, > > screen->height, > > diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c > > index 5ef444d..2a180f2 100644 > > --- a/hw/xwayland/xwayland-output.c > > +++ b/hw/xwayland/xwayland-output.c > > @@ -164,7 +164,7 @@ update_screen_size(struct xwl_output *xwl_output, int > > width, int height) > > struct xwl_screen *xwl_screen = xwl_output->xwl_screen; > > double mmpd; > > > > - if (xwl_screen->screen->root) > > + if (!xwl_screen->rootless) > > SetRootClip(xwl_screen->screen, FALSE); > > > > xwl_screen->width = width; > > @@ -184,11 +184,13 @@ update_screen_size(struct xwl_output *xwl_output, int > > width, int height) > > if (xwl_screen->screen->root) { > > xwl_screen->screen->root->drawable.width = width; > > xwl_screen->screen->root->drawable.height = height; > > - SetRootClip(xwl_screen->screen, TRUE); > > RRScreenSizeNotify(xwl_screen->screen); > > } > > > > update_desktop_dimensions(); > > + > > + if (!xwl_screen->rootless) > > + SetRootClip(xwl_screen->screen, TRUE); > > } > > > > static void > > diff --git a/hw/xwayland/xwayland-shm.c b/hw/xwayland/xwayland-shm.c > > index 1022c0d..7072be4 100644 > > --- a/hw/xwayland/xwayland-shm.c > > +++ b/hw/xwayland/xwayland-shm.c > > @@ -279,9 +279,11 @@ xwl_shm_create_screen_resources(ScreenPtr screen) > > if (!ret) > > return ret; > > > > - if (xwl_screen->rootless) > > + if (xwl_screen->rootless) { > > screen->devPrivate = > > fbCreatePixmap(screen, 0, 0, screen->rootDepth, 0); > > + SetRootClip(screen, FALSE); > > + } > > else > > screen->devPrivate = > > xwl_shm_create_pixmap(screen, screen->width, screen->height, > > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
