From 12de91d0397c1db9b221ae1aba4eb2a56698820d Mon Sep 17 00:00:00 2001 From: Mike Walters Date: Fri, 4 Mar 2016 15:53:58 +0000 Subject: [PATCH] samplebuffer: Unsubscribe from src on destruct --- samplebuffer.cpp | 6 ++++++ samplebuffer.h | 1 + 2 files changed, 7 insertions(+) diff --git a/samplebuffer.cpp b/samplebuffer.cpp index 437eee7..6965ff7 100644 --- a/samplebuffer.cpp +++ b/samplebuffer.cpp @@ -25,6 +25,12 @@ SampleBuffer::SampleBuffer(SampleSource *src) : src(src) src->subscribe(this); } +template +SampleBuffer::~SampleBuffer() +{ + src->unsubscribe(this); +} + template std::unique_ptr SampleBuffer::getSamples(off_t start, off_t length) { diff --git a/samplebuffer.h b/samplebuffer.h index c9f0fae..4574931 100644 --- a/samplebuffer.h +++ b/samplebuffer.h @@ -31,6 +31,7 @@ private: public: SampleBuffer(SampleSource *src); + ~SampleBuffer(); void invalidateEvent(); virtual std::unique_ptr getSamples(off_t start, off_t length); virtual void work(void *input, void *output, int count) = 0;