[Mesa-dev] [PATCH 1/2] glsl hierarchical visitor: Do not overwrite base_ir for parameter lists.

Kenneth Graunke kenneth at whitecape.org
Mon Sep 19 11:18:10 PDT 2011

On 09/15/2011 04:40 PM, Paul Berry wrote:
> 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.
> ---
>   src/glsl/ir_hierarchical_visitor.h |    3 ++-
>   src/glsl/ir_hv_accept.cpp          |   21 +++++++++++++++------
>   2 files changed, 17 insertions(+), 7 deletions(-)

I'm still not happy about ir_function and ir_function_signature being 
statements, but this definitely seems necessary for ir_call.  I think 
this is the minimal patch necessary to get things working for the time 
being; there may be a cleaner way but it'd be a lot of work.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

More information about the mesa-dev mailing list