X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fvisitor.cpp;h=fd9e9792b303cac8060d5b7b14b6f2fd74576b36;hb=6592dca643d9ac5b99d6a43cae30554ac1e4df62;hp=8c8056c56352c99a56ca3a7e5b21e298026e5fbe;hpb=2a9f8f3803e1b57e0e5325454266d4e701b38cc5;p=libs%2Fgl.git diff --git a/source/glsl/visitor.cpp b/source/glsl/visitor.cpp index 8c8056c5..fd9e9792 100644 --- a/source/glsl/visitor.cpp +++ b/source/glsl/visitor.cpp @@ -21,11 +21,6 @@ void TraversingVisitor::visit(RefPtr &expr) expr->visit(*this); } -void TraversingVisitor::visit(ParenthesizedExpression &parexpr) -{ - visit(parexpr.expression); -} - void TraversingVisitor::visit(MemberAccess &memacc) { visit(memacc.left); @@ -53,6 +48,13 @@ void TraversingVisitor::visit(Assignment &assign) visit(assign.right); } +void TraversingVisitor::visit(TernaryExpression &ternary) +{ + visit(ternary.condition); + visit(ternary.true_expr); + visit(ternary.false_expr); +} + void TraversingVisitor::visit(FunctionCall &call) { for(NodeArray::iterator i=call.arguments.begin(); i!=call.arguments.end(); ++i) @@ -200,7 +202,11 @@ void NodeRemover::visit(InterfaceBlock &iface) void NodeRemover::visit(FunctionDeclaration &func) { if(to_remove->count(&func)) + { remove_from_map(stage->functions, func.name, func); + if(!func.signature.empty()) + remove_from_map(stage->functions, func.name+func.signature, func); + } TraversingVisitor::visit(func); }