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.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/generic/problemresolver/incremental_expression.h b/src/generic/problemresolver/incremental_expression.h
index 0456b95e..5c997e74 100644
--- a/src/generic/problemresolver/incremental_expression.h
+++ b/src/generic/problemresolver/incremental_expression.h
@@ -100,6 +100,7 @@ public:
}
expression_weak_ref(T *_expr);
+ expression_weak_ref(const cwidget::util::ref_ptr<T> &_expr);
expression_weak_ref(const expression_weak_ref &other);
@@ -271,6 +272,13 @@ expression_weak_ref<T>::expression_weak_ref(T *_expr)
}
template<typename T>
+expression_weak_ref<T>::expression_weak_ref(const cwidget::util::ref_ptr<T> &_expr)
+ : expression_weak_ref_generic(true), expr(_expr.unsafe_get_ref())
+{
+ expr->add_weak_ref(this);
+}
+
+template<typename T>
expression_weak_ref<T>::expression_weak_ref(const expression_weak_ref<T> &other)
: expression_weak_ref_generic(other.get_valid()), expr(other.expr)
{