From 04a83fd6b730772fd8d902c53610eb5141bbf47d Mon Sep 17 00:00:00 2001 From: geeksville Date: Fri, 17 Apr 2020 13:24:38 -0700 Subject: [PATCH] properly detach observers at destruction --- src/Observer.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Observer.h b/src/Observer.h index eab1a4a30..0c0cb9a92 100644 --- a/src/Observer.h +++ b/src/Observer.h @@ -11,10 +11,9 @@ template class Observable; */ template class Observer { - Observable *observed; + Observable *observed = NULL; public: - Observer() : observed(NULL) {} virtual ~Observer(); @@ -92,5 +91,9 @@ template Observer::~Observer() template void Observer::observe(Observable *o) { + // We can only watch one thing at a time + assert(!observed); + + observed = o; o->addObserver(this); } \ No newline at end of file