]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/visitor.cpp
Refactor interface management
[libs/gl.git] / source / glsl / visitor.cpp
index 0577b5ab213f5e67296f87e0285323cc0e361433..c27de11892607ec627e1a6bf7022e2aa267e0023 100644 (file)
@@ -165,10 +165,6 @@ void NodeRemover::visit(VariableDeclaration &var)
        if(recursive_remove || to_remove->count(&var))
        {
                remove_variable(current_block->variables, var);
-               if(current_block->anonymous && current_block->parent)
-                       remove_variable(current_block->parent->variables, var);
-               remove_variable(stage->in_variables, var);
-               remove_variable(stage->out_variables, var);
                stage->locations.erase(var.name);
                if(var.linked_declaration)
                        var.linked_declaration->linked_declaration = 0;
@@ -179,6 +175,8 @@ void NodeRemover::visit(VariableDeclaration &var)
 
 void NodeRemover::visit(InterfaceBlock &iface)
 {
+       if(to_remove->count(&iface))
+               current_block->interfaces.erase(&iface);
        SetFlag set_recursive(recursive_remove, recursive_remove || to_remove->count(&iface));
        TraversingVisitor::visit(iface);
 }