wgl: Cleanup framebuffer destruction logic.
authorJosé Fonseca <jfonseca@vmware.com>
Mon, 1 Jun 2009 00:16:26 +0000 (17:16 -0700)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 1 Jun 2009 00:16:26 +0000 (17:16 -0700)
src/gallium/state_trackers/wgl/shared/stw_framebuffer.c

index 030a155f54a4ce10776bff9ff4f580ec7ab47980..768cef3db6cc041e10c108b85b46e502a4c80bc4 100644 (file)
@@ -213,23 +213,18 @@ stw_framebuffer_resize(
 
 
 static INLINE void
-stw_framebuffer_destroy(
+stw_framebuffer_destroy_locked(
    struct stw_framebuffer *fb )
 {
    struct stw_framebuffer **link;
 
-   pipe_mutex_lock( stw_dev->mutex );
-
    link = &stw_dev->fb_head;
-   while (link && *link != fb)
+   while (*link != fb)
       link = &(*link)->next;
    assert(*link);
-   if (link)
-      *link = fb->next;
+   *link = fb->next;
    fb->next = NULL;
 
-   pipe_mutex_unlock( stw_dev->mutex );
-
    st_unreference_framebuffer(fb->stfb);
    
    pipe_mutex_destroy( fb->mutex );
@@ -249,7 +244,7 @@ stw_framebuffer_cleanup( void )
    fb = stw_dev->fb_head;
    while (fb) {
       next = fb->next;
-      stw_framebuffer_destroy(fb);
+      stw_framebuffer_destroy_locked(fb);
       fb = next;
    }
    stw_dev->fb_head = NULL;