X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Foptimize.cpp;h=85f97faecd108452bb15b9f3b5508f7c503e8c92;hp=414cf38754191a85d8b6643811c3dc5c4764f4b4;hb=cc3f4aaaf8d2b34347f69b026c10f82797059aa4;hpb=50a79aee4c53c4198bae38c7ff447133a043aacc diff --git a/source/glsl/optimize.cpp b/source/glsl/optimize.cpp index 414cf387..85f97fae 100644 --- a/source/glsl/optimize.cpp +++ b/source/glsl/optimize.cpp @@ -479,9 +479,9 @@ void ExpressionInliner::visit(Assignment &assign) r_oper = 0; visit_and_record(assign.right, assign.oper, true); - if(assign.target_declaration) + if(VariableDeclaration *target_var = dynamic_cast(assign.target.declaration)) { - map::iterator i = expressions.find(assign.target_declaration); + map::iterator i = expressions.find(target_var); if(i!=expressions.end()) { /* Self-referencing assignments can't be inlined without additional @@ -838,8 +838,9 @@ void UnusedVariableRemover::visit(ExpressionStatement &expr) r_assign_to_subfield = false; r_side_effects = false; TraversingVisitor::visit(expr); - if(r_assignment && r_assignment->target_declaration) - record_assignment(*r_assignment->target_declaration, expr, (r_assignment->self_referencing || r_assign_to_subfield)); + if(r_assignment && r_assignment->target.declaration) + if(VariableDeclaration *target_var = dynamic_cast(r_assignment->target.declaration)) + record_assignment(*target_var, expr, (r_assignment->self_referencing || r_assign_to_subfield)); if(!r_side_effects) unused_nodes.insert(&expr); }