meta: Plug memory leak
authorBen Widawsky <benjamin.widawsky@intel.com>
Sat, 7 Mar 2015 01:31:00 +0000 (17:31 -0800)
committerBen Widawsky <benjamin.widawsky@intel.com>
Mon, 9 Mar 2015 23:32:33 +0000 (16:32 -0700)
It looks like this has existed since
commit f5a477ab76b6e0b268387699cd2253a43db0dfae
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Mon Dec 16 11:54:08 2013 -0800

    meta: Refactor shader generation code out of mipmap generation path

Valgrind was complaining on fbo-generatemipmap-formats

v2: Instead, do the allocation after the early return block (v2)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/common/meta.c

index fdc4cf1e92743f1872cd2f5ffca17d045db8d125..cf99d95638bed7ab52d428fdc5a2936f38fb8481 100644 (file)
@@ -247,9 +247,9 @@ _mesa_meta_setup_blit_shader(struct gl_context *ctx,
                              struct blit_shader_table *table)
 {
    char *vs_source, *fs_source;
-   void *const mem_ctx = ralloc_context(NULL);
    struct blit_shader *shader = choose_blit_shader(target, table);
    const char *vs_input, *vs_output, *fs_input, *vs_preprocess, *fs_preprocess;
+   void *mem_ctx;
 
    if (ctx->Const.GLSLVersion < 130) {
       vs_preprocess = "";
@@ -273,6 +273,8 @@ _mesa_meta_setup_blit_shader(struct gl_context *ctx,
       return;
    }
 
+   mem_ctx = ralloc_context(NULL);
+
    vs_source = ralloc_asprintf(mem_ctx,
                 "%s\n"
                 "%s vec2 position;\n"