handle very early errors in pipe_screen creation (failure of nouveau_screen_init in nv50_screen_create) Signed-off-by: Francisco Jerez <currojerez@riseup.net>tags/mesa-7.9-rc1
| @@ -258,6 +258,7 @@ nouveau_screen_fini(struct nouveau_screen *screen) | |||
| { | |||
| struct pipe_winsys *ws = screen->base.winsys; | |||
| nouveau_channel_free(&screen->channel); | |||
| ws->destroy(ws); | |||
| if (ws) | |||
| ws->destroy(ws); | |||
| } | |||
| @@ -19,7 +19,8 @@ nouveau_drm_destroy_winsys(struct pipe_winsys *s) | |||
| { | |||
| struct nouveau_winsys *nv_winsys = nouveau_winsys(s); | |||
| struct nouveau_screen *nv_screen= nouveau_screen(nv_winsys->pscreen); | |||
| nouveau_device_close(&nv_screen->device); | |||
| if (nv_screen) | |||
| nouveau_device_close(&nv_screen->device); | |||
| FREE(nv_winsys); | |||
| } | |||