On Friday, November 07, 2014 03:50:42 AM Emil Velikov wrote: > Earlier commit failed to attribure that for drm platforms one does not > call dri2_create_screen, thus it does not create the screen and > driver_configs but inherits them from the "display" - gbm. > > As such wrap cleanup in Platform != _EGL_PLATFORM_DRM to prevent > the issue and still cleanup correctly for non-drm platforms. > > Cc: Kenneth Graunke <[email protected]> > Cc: Mark Janes <[email protected]> > Reported-by: Kenneth Graunke <[email protected]> > Reported-by: Mark Janes <[email protected]> > Signed-off-by: Emil Velikov <[email protected]> > --- > src/egl/drivers/dri2/egl_dri2.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c > index dcc3239..609afde 100644 > --- a/src/egl/drivers/dri2/egl_dri2.c > +++ b/src/egl/drivers/dri2/egl_dri2.c > @@ -707,9 +707,18 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp) > break; > } > > + /* The drm platform does not create the screen/driver_configs but reuses > + * the ones from the gbm device. As such the gbm itself is responsible > + * for the cleanup. */
Usually */ goes on its own line (same applies to later patches).
> +#ifdef HAVE_DRM_PLATFORM
I don't think you need these #ifdefs - _EGL_PLATFORM_DRM is an enum value
defined by src/egl/main/egldisplay.h (not the public EGL headers) regardless
of build options. I imagine if you didn't build with HAVE_DRM_PLATFORM, disp-
>Platform will never be _EGL_PLATFORM_DRM.
> + if (disp->Platform != _EGL_PLATFORM_DRM) {
> +#endif
> for (i = 0; dri2_dpy->driver_configs[i]; i++)
> free((__DRIconfig *) dri2_dpy->driver_configs[i]);
> free(dri2_dpy->driver_configs);
> +#ifdef HAVE_DRM_PLATFORM
> + }
> +#endif
> free(dri2_dpy);
> disp->DriverData = NULL;
Thanks for fixing this so quickly! The series fixes my crashes, and is:
Reviewed-and-tested-by: Kenneth Graunke <[email protected]>
with, of course, the caveat that I don't know the EGL code worth beans. :)
--Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
