summaryrefslogtreecommitdiff
path: root/src/generic/problemresolver/incremental_expression.h
diff options
context:
space:
mode:
authorDaniel Burrows <dburrows@debian.org>2009-05-22 07:51:21 -0700
committerDaniel Burrows <dburrows@debian.org>2009-05-22 07:51:21 -0700
commitcd9cef1f967b063a4d4219706fd0977f02b0a9bf (patch)
tree5cbd055c00edce538ad45b979424f86ee1f19869 /src/generic/problemresolver/incremental_expression.h
parent10d07302179b83de4d574c437ac0428c9ba18f85 (diff)
downloadaptitude-cd9cef1f967b063a4d4219706fd0977f02b0a9bf.tar.gz
Allow expression weak references to be directly initialized from cwidget ref_ptrs.
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)
{