Mesa (master): i965: Fix refcount leak of the gl_program structure.

Eric Anholt anholt at kemper.freedesktop.org
Wed Jan 18 18:37:59 UTC 2012


Module: Mesa
Branch: master
Commit: b2be4869624443cd9769bd696b11dd587494b62a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b2be4869624443cd9769bd696b11dd587494b62a

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Jan 12 12:55:06 2012 -0800

i965: Fix refcount leak of the gl_program structure.

Fixes a leak of almost 200kb on a minimal shader_runner program
(algebraic-add-add-1).

NOTE: This is a candidate for the 8.0 branch.

---

 src/mesa/drivers/dri/i965/brw_shader.cpp |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index ef0f09d..aa1bfdb 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -229,6 +229,8 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
        * program constant) has to happen before creating this linkage.
        */
       _mesa_associate_uniform_storage(ctx, shProg, prog->Parameters);
+
+      _mesa_reference_program(ctx, &prog, NULL);
    }
 
    if (!brw_shader_precompile(ctx, shProg))




More information about the mesa-commit mailing list