util: fix a memory leak in blitter
authorMarek Olšák <maraeo@gmail.com>
Sun, 27 Jun 2010 13:02:08 +0000 (15:02 +0200)
committerMarek Olšák <maraeo@gmail.com>
Sun, 27 Jun 2010 13:13:14 +0000 (15:13 +0200)
src/gallium/auxiliary/util/u_blitter.c

index 42d37ccfd6db62c63918a6a68d142c23aac581a7..98d5a25a3f889b70f14e190e4e9746edbeb3f94b 100644 (file)
@@ -97,8 +97,6 @@ struct blitter_context_priv
    /* Rasterizer state. */
    void *rs_state;
 
-   struct pipe_sampler_view *sampler_view;
-
    /* Viewport state. */
    struct pipe_viewport_state viewport;
 
@@ -260,8 +258,6 @@ void util_blitter_destroy(struct blitter_context *blitter)
       if (ctx->sampler_state[i])
          pipe->delete_sampler_state(pipe, ctx->sampler_state[i]);
 
-   pipe_sampler_view_reference(&ctx->sampler_view, NULL);
-
    pipe_resource_reference(&ctx->vbuf, NULL);
    FREE(ctx);
 }
@@ -734,8 +730,6 @@ void util_blitter_copy_region(struct blitter_context *blitter,
    u_sampler_view_default_template(&viewTempl, src, src->format);
    view = pipe->create_sampler_view(pipe, src, &viewTempl);
 
-   pipe_sampler_view_reference(&ctx->sampler_view, view);
-
    /* Set rasterizer state, shaders, and textures. */
    pipe->bind_rasterizer_state(pipe, ctx->rs_state);
    pipe->bind_vs_state(pipe, ctx->vs_tex);
@@ -771,6 +765,7 @@ void util_blitter_copy_region(struct blitter_context *blitter,
    blitter_restore_CSOs(ctx);
 
    pipe_surface_reference(&dstsurf, NULL);
+   pipe_sampler_view_reference(&view, NULL);
 }
 
 /* Clear a region of a color surface to a constant value. */