]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/syntax.cpp
Unlink declarations on destruction
[libs/gl.git] / source / glsl / syntax.cpp
index 6c766fd758161283006de48f0cdbc09666e8d305..bda0dd1d7b2a0d673bcea91fc1fdbab23307ce37 100644 (file)
@@ -262,6 +262,12 @@ VariableDeclaration::VariableDeclaration(const VariableDeclaration &other):
        layout(other.layout)
 { }
 
+VariableDeclaration::~VariableDeclaration()
+{
+       if(linked_declaration && linked_declaration->linked_declaration==this)
+               linked_declaration->linked_declaration = 0;
+}
+
 void VariableDeclaration::visit(NodeVisitor &visitor)
 {
        visitor.visit(*this);
@@ -284,6 +290,12 @@ InterfaceBlock::InterfaceBlock(const InterfaceBlock &other):
        linked_block(0)
 { }
 
+InterfaceBlock::~InterfaceBlock()
+{
+       if(linked_block && linked_block->linked_block==this)
+               linked_block->linked_block = 0;
+}
+
 void InterfaceBlock::visit(NodeVisitor &visitor)
 {
        visitor.visit(*this);