st/mesa/i965: simplify gl_program references and stop leaking
authorTimothy Arceri <timothy.arceri@collabora.com>
Thu, 17 Nov 2016 01:26:08 +0000 (12:26 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Fri, 18 Nov 2016 20:42:33 +0000 (07:42 +1100)
commit2b8f97d0ff0836b1d1c8753a81a8810df385b21d
tree1b26f511a4477c78ee2fab6a57116f7dc24af60a
parent9db5cc829f6bd7ba09f3bf0bf057b7162d05d037
st/mesa/i965: simplify gl_program references and stop leaking

In i965 we were calling _mesa_reference_program() after creating
gl_program and then later calling it again with NULL as a param
to get the refcount back down to 1. This changes things to not
use _mesa_reference_program() at all and just have gl_linked_shader
take ownership of gl_program since refcount starts at 1.

The st and ir_to_mesa linkers were worse as they were both getting
in a state were the refcount would never get to 0 and we would leak
the program.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/mesa/drivers/dri/i965/brw_link.cpp
src/mesa/program/ir_to_mesa.cpp
src/mesa/state_tracker/st_glsl_to_nir.cpp
src/mesa/state_tracker/st_glsl_to_tgsi.cpp