glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.
authorPaul Berry <stereotype441@gmail.com>
Fri, 19 Aug 2011 04:37:31 +0000 (21:37 -0700)
committerPaul Berry <stereotype441@gmail.com>
Fri, 23 Sep 2011 20:28:00 +0000 (13:28 -0700)
commitcc81eb09b928389f926b3512c18b3298777d2928
tree8e9c7047d6d18eb740b2e512894d3c8898ff3bcf
parentdeff7fff494a04314fe9ad859029f0436bcc9e9f
glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.

This patch fixes a bug in ir_hirearchical_visitor: when traversing an
exec_list representing the formal or actual parameters of a function,
it modified base_ir to point to each parameter in turn, rather than
leaving it as a pointer to the enclosing statement.  This was a
problem, since base_ir is used by visitor classes to locate the
statement containing the node being visited (usually so that
additional statements can be inserted before or after it).  Without
this fix, visitors might attempt to insert statements into parameter
lists.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/ir_hierarchical_visitor.h
src/glsl/ir_hv_accept.cpp