mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-25 17:42:48 +00:00
properly detach observers at destruction
This commit is contained in:
parent
7730bd762a
commit
04a83fd6b7
@ -11,10 +11,9 @@ template <class T> class Observable;
|
|||||||
*/
|
*/
|
||||||
template <class T> class Observer
|
template <class T> class Observer
|
||||||
{
|
{
|
||||||
Observable<T> *observed;
|
Observable<T> *observed = NULL;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Observer() : observed(NULL) {}
|
|
||||||
|
|
||||||
virtual ~Observer();
|
virtual ~Observer();
|
||||||
|
|
||||||
@ -92,5 +91,9 @@ template <class T> Observer<T>::~Observer()
|
|||||||
|
|
||||||
template <class T> void Observer<T>::observe(Observable<T> *o)
|
template <class T> void Observer<T>::observe(Observable<T> *o)
|
||||||
{
|
{
|
||||||
|
// We can only watch one thing at a time
|
||||||
|
assert(!observed);
|
||||||
|
|
||||||
|
observed = o;
|
||||||
o->addObserver(this);
|
o->addObserver(this);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user