draw: fix translate double-free, minor cleanups
authorKeith Whitwell <keith@tungstengraphics.com>
Fri, 9 May 2008 14:02:59 +0000 (15:02 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Fri, 9 May 2008 14:02:59 +0000 (15:02 +0100)
src/gallium/auxiliary/draw/draw_pipe_vbuf.c
src/gallium/auxiliary/draw/draw_pt_fetch.c
src/gallium/auxiliary/draw/draw_pt_fetch_emit.c

index 86a7d1c..67b9a95 100644 (file)
@@ -427,9 +427,6 @@ static void vbuf_destroy( struct draw_stage *stage )
    if(vbuf->indices)
       align_free( vbuf->indices );
    
-   if(vbuf->translate)
-      vbuf->translate->release( vbuf->translate );
-
    if (vbuf->render)
       vbuf->render->destroy( vbuf->render );
 
index 100117a..b96335b 100644 (file)
@@ -184,7 +184,8 @@ struct pt_fetch *draw_pt_fetch_create( struct draw_context *draw )
 
 void draw_pt_fetch_destroy( struct pt_fetch *fetch )
 {
-   translate_cache_destroy(fetch->cache);
+   if (fetch->cache)
+      translate_cache_destroy(fetch->cache);
 
    FREE(fetch);
 }
index b7b970a..4ea7d43 100644 (file)
@@ -268,7 +268,8 @@ static void fetch_emit_destroy( struct draw_pt_middle_end *middle )
 {
    struct fetch_emit_middle_end *feme = (struct fetch_emit_middle_end *)middle;
 
-   translate_cache_destroy(feme->cache);
+   if (feme->cache)
+      translate_cache_destroy(feme->cache);
 
    FREE(middle);
 }