[g3dvl] stop calling dri2DestroyDrawable
authorChristian König <deathsimple@vodafone.de>
Fri, 8 Jul 2011 22:00:10 +0000 (00:00 +0200)
committerChristian König <deathsimple@vodafone.de>
Fri, 8 Jul 2011 22:00:10 +0000 (00:00 +0200)
When switching channels with xine it sometimes happens that xine
destroys the drawable before we get a chance to call
DRI2DestroyDrawable, resulting in an x error.

src/gallium/winsys/g3dvl/dri/dri_winsys.c

index f854e924fa4d7b198fbec384e41e501eef0ddefe..276731ca58841cf6ef5c8e61837c67e0a31749b3 100644 (file)
@@ -167,21 +167,6 @@ static int drawable_cmp(void *key1, void *key2)
    return d1 != d2;
 }
 
-static enum pipe_error
-drawable_destroy(void *key, void *value, void *data)
-{
-   Drawable drawable = (Drawable)key;
-   struct vl_dri_screen *vl_dri_scrn = (struct vl_dri_screen*)data;
-
-   assert(drawable != None);
-   assert(value);
-   assert(data);
-
-   dri2DestroyDrawable(vl_dri_scrn->dri_screen, drawable);
-
-   return PIPE_OK;
-}
-
 struct vl_screen*
 vl_screen_create(Display *display, int screen)
 {
@@ -226,7 +211,6 @@ void vl_screen_destroy(struct vl_screen *vscreen)
 
    assert(vscreen);
 
-   util_hash_table_foreach(vl_dri_scrn->drawable_table, drawable_destroy, vl_dri_scrn);
    util_hash_table_destroy(vl_dri_scrn->drawable_table);
    vl_dri_scrn->base.pscreen->destroy(vl_dri_scrn->base.pscreen);
    dri2DestroyScreen(vl_dri_scrn->dri_screen);