summaryrefslogtreecommitdiff
path: root/src/generic/problemresolver/incremental_expression.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/generic/problemresolver/incremental_expression.h')
-rw-r--r--src/generic/problemresolver/incremental_expression.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/generic/problemresolver/incremental_expression.h b/src/generic/problemresolver/incremental_expression.h
index 4b6b73c1..7c8fa9c5 100644
--- a/src/generic/problemresolver/incremental_expression.h
+++ b/src/generic/problemresolver/incremental_expression.h
@@ -276,14 +276,17 @@ public:
~expression_box()
{
- child->remove_parent(this);
+ if(child.valid())
+ child->remove_parent(this);
}
void set_child(const cwidget::util::ref_ptr<expression<T> > &new_child)
{
- child->remove_parent(this);
+ if(child.valid())
+ child->remove_parent(this);
child = new_child;
- new_child->add_parent(this);
+ if(new_child.valid())
+ new_child->add_parent(this);
}
const cwidget::util::ref_ptr<expression<T> > &get_child() const