[Mesa-dev] [PATCH] [v2] meta: Plug memory leak

Ben Widawsky benjamin.widawsky at intel.com
Mon Mar 9 11:44:18 PDT 2015


It looks like this has existed since
commit f5a477ab76b6e0b268387699cd2253a43db0dfae
Author: Ian Romanick <ian.d.romanick at 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)

Cc: Ian Romanick <ian.d.romanick at intel.com>
Cc: Brian Paul <brianp at vmware.com>
Cc: Eric Anholt <eric at anholt.net>
Cc: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
---

Thanks Ken. I wasn't sure if this path was common or not, and I had opted for
the standard, define variables at the top, style. If it occurs more than
infrequently, then I like this solution better.

(FYI: Jenkins results, http://otc-gfxtest-01.jf.intel.com/job/bwidawsk/100/)
---
 src/mesa/drivers/common/meta.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index fdc4cf1..fa800ec 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -247,7 +247,6 @@ _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;
 
@@ -273,6 +272,8 @@ _mesa_meta_setup_blit_shader(struct gl_context *ctx,
       return;
    }
 
+   void *const mem_ctx = ralloc_context(NULL);
+
    vs_source = ralloc_asprintf(mem_ctx,
                 "%s\n"
                 "%s vec2 position;\n"
-- 
2.3.2



More information about the mesa-dev mailing list