summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd/destructible.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/pbd/pbd/destructible.h')
-rw-r--r--libs/pbd/pbd/destructible.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/pbd/pbd/destructible.h b/libs/pbd/pbd/destructible.h
index 6692ff564c..7c50806334 100644
--- a/libs/pbd/pbd/destructible.h
+++ b/libs/pbd/pbd/destructible.h
@@ -5,14 +5,22 @@
namespace PBD {
-class Destructible : public virtual sigc::trackable {
- public:
- Destructible() {}
- virtual ~Destructible () {}
+/* be very very careful using this class. it does not inherit from sigc::trackable and thus
+ should only be used in multiple-inheritance situations involving another type
+ that does inherit from sigc::trackable (or sigc::trackable itself)
+*/
+class ThingWithGoingAway {
+ public:
+ virtual ~ThingWithGoingAway () {}
sigc::signal<void> GoingAway;
+};
+class Destructible : public sigc::trackable, public ThingWithGoingAway {
+ public:
+ virtual ~Destructible () {}
void drop_references () const { GoingAway(); }
+
};
}